在创建帖子之前,是否可以向帖子添加标签?
假设我有一个链接“/wp admin/new post.php?tags=a,b,c,d”,然后单击它,我想进入新的贴子页面,其中的标签已经与之关联。
在创建帖子之前,是否可以向帖子添加标签?
假设我有一个链接“/wp admin/new post.php?tags=a,b,c,d”,然后单击它,我想进入新的贴子页面,其中的标签已经与之关联。
我试着用过滤器wp_get_object_terms
像这样:
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);
但这不起作用,可能返回值的格式错误,我没有查找它,而是尝试了其他类似的过滤器: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);
这是可行的,但只有同时使用第一个过滤器,这是因为如果没有要处理的条款,第二个过滤器将不会运行。您可以使用load-post-new.php
和wp_insert_post
行动。
下面是我们的URL格式:
/wp管理员/新发布。php?add\\u tags=foo,bar
首先,我们将函数挂接到load-post-new.php
并检查是否add_tags
在请求中。如果是,我们将向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\' );
然后在我们wp_insert_post
操作,我们会在新帖子添加到数据库后立即将传递的任何标签与之关联:function wpa_insert_post( $post_id ){
wp_set_post_tags( $post_id, $_REQUEST[\'add_tags\'] );
}
我有两个不同的循环。主页上的默认值,但存档页面上的二次循环。它抓住了所有的内容,就像这样:<?php // WP_Query arguments $args = array ( \'posts_per_page\' => \'3\' ); // The Query $archiveQuery = new WP_Query( $args ); // The Loop if ( $archiveQuery-&