是否显示当前类别和相同标签中的帖子?

时间:2017-07-16 作者:thebigE

我试图在一个页面上显示来自当前类别和相同标记的帖子。

我正在显示当前类别中的帖子,如下所示:

<div class="row">
    <?php
    global $post;
    $category = get_the_category($post->ID);
    $category = $category[0]->cat_ID;
    $myposts = get_posts(
                array(
                    \'numberposts\' => -1, 
                    \'offset\' => 0, 
                    \'category__in\' => array($category),
                    \'post_status\'=>\'publish\',
                    \'order\'=>\'ASC\' 
                    )
                );
    foreach($myposts as $post) :
        setup_postdata($post);  ?>
        <div class="col-md-3 animation-element bounce-up cf" <?php post_class(); ?> id="post-<?php the_ID(); ?>">
            <a class="test" href="<?php the_permalink(); ?>">
            <?php echo get_the_post_thumbnail( $post->ID, \'large\' ); ?> </a>
                <p style="text-transform:uppercase;text-align:center;font-size:18px;margin-top:20px" class="title"><strong>
            <?php the_title(); ?> </strong> </p>
        </div>
    <?php endforeach; ?>
    <?php wp_reset_query(); ?>
</div>
但是,如何同时显示与当前帖子相同的标签?

感谢lto!

1 个回复
最合适的回答,由SO网友:kero 整理而成

标签是taxonomy called post_tag. 您可以在中使用它们get_posts() via the tax_query.

自从wp_get_post_tags() 返回一个对象数组,由于查询只需要每个对象一个字段,因此需要对其进行清理。

$tag_objects = wp_get_post_tags($post->ID);
$tags = array();
foreach ($tag_objects as $tag_object) {
    $tags[] = $tag_object->term_id;
}
$myposts = get_posts(array(
    \'numberposts\' => -1,
    \'offset\' => 0,
    \'category__in\' => array($category),
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'post_tag\',
            \'field\'    => \'term_id\',
            \'terms\'    => $tags,
        ),
    ),
    \'post_status\'=>\'publish\',
    \'order\'=>\'ASC\'
));

结束

相关推荐

Combine posts and postmeta

我需要获取所有帖子ID、帖子标题和相应的meta\\u值,该值是自定义帖子类型的“特色”。我想我需要加入,但我不知道他们是怎么工作的。。谁能帮我一下吗?