查找恰好有3/4类别的帖子

时间:2013-12-10 作者:user3086382

我看到wordpress给你提供了一个机会来搜索N个类别的帖子。。。所以我自己尝试并产生了这个代码。。。

$catIDs = get_cat_ID( $cat_name=\'CategoryName1\' );
$catIDs .= \',\' . get_cat_ID( $cat_name=\'CategoryName2\');
$catIDs .= \',\' . get_cat_ID( $cat_name=\'CategoryName3\');
echo "$catIDs </br>";

$my_query = new WP_Query( array( \'category__and\' => array($catIDs) ) );
if( $my_query->have_posts() ) : while( $my_query->have_posts() ) : $my_query->the_post(); ?>
<li>
    <a href="<?php the_permalink(); ?>"> <?php the_ID(); ?> </a>
</li>
<?php endwhile; endif; wp_reset_postdata(); ?>
如果我将数组($CATID)替换为1,2,3(类别的ID),此解决方案有效。。。。为什么在变量$CATID中没有呢?以及如何使此解决方案动态化(我有一个表单,我将在此表单中传递数据—在本例中是类别名称/ID)

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

Make sure you are providing correct category names into the function get_cat_ID().

<?php 
$catIDs = array();
$catIDs[] = get_cat_ID( \'CategoryName1\' );
$catIDs[] = get_cat_ID( \'CategoryName2\' );
$catIDs[] = get_cat_ID( \'CategoryName3\' );

$my_query = new WP_Query( 
    array( 
        \'category__and\' => $catIDs 
    ) 
);
if( $my_query->have_posts() ) : 
    while( $my_query->have_posts() ) : $my_query->the_post(); ?>
        <li>
            <a href="<?php the_permalink(); ?>"> <?php the_ID(); ?> </a>
        </li> <?php 
    endwhile; 
endif; 
wp_reset_postdata(); 
?>
结束