由标签计数的wordpress字体帖子

时间:2017-07-06 08:02:07

标签: php wordpress tags

自定义帖子类型posttype包含多个分类,例如tax1tax2post_tag,其中添加了以下内容:

function add_tags_categories() {
    register_taxonomy_for_object_type('post_tag', 'posttype');
}
add_action('init', 'add_tags_categories');

现在正在搜索任何解决方案以获得相同标签的大多数相关帖子在帖子中计算..很可能找到这样的解决方案:

$tags = wp_get_post_terms( $post -> ID, 'post_tag', ['fields' => 'ids'] );
$args = array(
    'post__not_in'        => array( $post -> ID ),
    'posts_per_page'      => -1,
    'ignore_sticky_posts' => true,
    'orderby'             => 'count',
    'tax_query' => array(
        array(
            'taxonomy' => 'post_tag',
            'terms'    => $tags
        )
    )
);

$my_query = new wp_query( $args );

但是它不起作用..我在带有id的数组中得到$tags, 查询似乎也工作,只是没有找到任何类似的帖子...但我已创建和类似,并与标签相同..但结果仍然是0帖子..

1 个答案:

答案 0 :(得分:0)

here

中找到解决方案

所以我这样做了:

$tags = wp_get_post_terms( $post -> ID, 'post_tag', ['fields' => 'ids'] );
$args = array(
    'post_type'      => 'posttype',
    'post__not_in'        => array( $post -> ID ),
    'posts_per_page'      => -1,
    'ignore_sticky_posts' => true,
    'orderby'             => 'tag_count',
    'order'             => 'DESC',
    'tag__in' => $tags,      
);

add_filter( 'posts_clauses', 'wpse173949_posts_clauses', 10, 2 );
$query = new WP_Query( $args );
remove_filter( 'posts_clauses', 'wpse173949_posts_clauses', 10 );