Adicione tags para postar antes de ser criado

É possível adicionar tags a uma publicação, antes da sua criação?

Diga se eu tenho um link “/wp-admin/new-post.php?tags=a,b,c,d” e, clicando nele, eu quero entrar na página de novas postagens com as tags já associadas a ele.

Solutions Collecting From Web of "Adicione tags para postar antes de ser criado"

Eu tentei usar o filtro wp_get_object_terms como este:

 function add_object_terms($terms, $object_ids, $taxonomies, $args){ if (isset( $_GET[ 'tags' ]) && str_replace("'","",$taxonomies) == "post_tag") { $newterms = explode(",",$_GET['tags']); return array_merge($terms, $newterms); } else { return $terms; } } add_filter('wp_get_object_terms', 'add_object_terms',1,4); 

Isso não funciona, porém, talvez o valor de retorno tenha o formato errado, não procurei, então eu tentei outro filtro como este:

 function add_tags($tags_to_edit, $taxonomy){ if (isset( $_GET[ 'tags' ]) && $taxonomy == 'post_tag') { return $_GET['tags']; } else { return $tags_to_edit; } } add_filter('terms_to_edit', 'add_tags',1,2); 

Isso funciona, mas apenas se você também usa o primeiro filtro, porque o segundo filtro não será executado se não houver termos para lidar.

Você pode fazer isso com as ações load-post-new.php e wp_insert_post .

Então aqui está o nosso formato de URL:

/wp-admin/post-new.php?add_tags=foo,bar

Primeiro, load-post-new.php uma function para load-post-new.php e verifique se add_tags está na solicitação. Se assim for, adicionamos uma ação a wp_insert_post :

 function wpa_load_post_new(){ if ( array_key_exists( 'add_tags', $_REQUEST ) ) { add_action( 'wp_insert_post', 'wpa_insert_post' ); } } add_filter( 'load-post-new.php', 'wpa_load_post_new' ); 

Em seguida, na nossa ação wp_insert_post , associamos quaisquer tags que tenham sido passadas com esta nova postagem assim que ela for adicionada ao database:

 function wpa_insert_post( $post_id ){ wp_set_post_tags( $post_id, $_REQUEST['add_tags'] ); }