显示匹配两个类别的相关帖子

时间:2016-07-06 作者:BigDropGR

我有一个额外的分类法,名为Regions(如Categories)。

例如,我的类别是:

别墅管家和我的区域是:

Mykonos圣托里尼岛克里特岛在单个贴子页面上,我想按地区和特定类别显示相关贴子。

示例:在别墅上(Category) 在Mykonos(Region) 我想让管家们排成一排(Category) 有Mykonos(Region) 作为一个地区。

我猜下面的代码将显示相关的分类帖子。如何才能只显示与一篇文章的两个类别都匹配的文章?

<?php
$related = get_posts( array( \'category__in\' => wp_get_post_categories($post->ID), \'numberposts\' => 5, \'post__not_in\' => array($post->ID) ) );
if( $related ) foreach( $related as $post ) {
setup_postdata($post); ?>
 <ul>
        <li>
    <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
        <?php the_content(\'Read the rest of this entry &raquo;\'); ?>
        </li>
 </ul> 
<?php }
wp_reset_postdata(); ?>

1 个回复
SO网友:Rarst

这似乎有点棘手,因为您似乎(ab)将本地类别用于不完全相同的事物(别墅和管家)。您可能需要编写一个自定义逻辑,因为WP不会“获取”如果您在一个特定类别(别墅)上,您想要查询另一个类别(管家)的位。

至于查询本身,WP现在支持非常详细的taxonomy queries.

大致来说,它的查询部分如下所示:

\'tax_query\' => array(
   \'relation\' => \'AND\',
    array(
        \'taxonomy\' => \'category\',
        \'field\'    => \'slug\',
        \'terms\'    => \'housekeeper\',
    ),
    array(
        \'taxonomy\' => \'region\',
        \'field\'    => \'slug\',
        \'terms\'    => \'mykonos\',
    ),
),

相关推荐