在 Wordpress 中使用自定义帖子类型时无法在循环中过滤类别
Posted
技术标签:
【中文标题】在 Wordpress 中使用自定义帖子类型时无法在循环中过滤类别【英文标题】:Can't filter on category in loop when using Custom Post Type in Wordpress 【发布时间】:2012-05-18 06:39:50 【问题描述】:我正在尝试使用下面的代码显示来自名为投资组合的自定义帖子类型的帖子,然后按类别过滤结果,我尝试将 - category_name , catid,portfolio_category 放入数组中
浏览了论坛并尝试了一些方法,但似乎无法使其正常工作,它要么不显示任何内容,要么显示所有类别的所有帖子。
<?php
$args=array(
'post_type' => 'portfolio',
'post_status' => 'publish',
'posts_per_page' => 7,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() )
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to
<?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
<?php
endwhile;
wp_reset_query(); // Restore global post data stomped by the_post().
?>
注册的分类是portfolio_category,如果有任何帮助,我们将不胜感激,非常感谢
【问题讨论】:
【参考方案1】:您可以尝试将该类别称为自定义分类:
'portfolio_cat' => 'name_of_your_category'
【讨论】:
这就是我让它工作的方式 $args = array( 'post_type'=>'portfolio', 'tax_query' => array( array( 'taxonomy' => 'portfolio_category', ' field' => 'slug', 'terms' => 'solutions' ) ) ); $my_query = new WP_Query($args); @Ledgemonkey 不客气。您可以将我的答案标记为已接受,因为它是正确的。至少给它投票。任何东西,但不是负面声誉。 :(【参考方案2】:在尝试了一些事情之后,这就是我使用“tax_query”让它工作的方式,希望这对某人有所帮助......
<?php
$args = array(
'post_type'=>'portfolio',
'tax_query' => array(
array(
'taxonomy' => 'portfolio_category',
'field' => 'slug',
'terms' => 'solutions'
)
)
);
$my_query = new WP_Query( $args );
if( $my_query->have_posts() )
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to
<?php the_title_attribute(); ?>">
<?php the_title(); ?></a></p>
<?php the_excerpt()?>
<?php echo get_the_post_thumbnail($post->ID, array(50,50)); ?>
<?php
endwhile;
wp_reset_query(); // Restore global post data stomped by the_post().
?>
【讨论】:
以上是关于在 Wordpress 中使用自定义帖子类型时无法在循环中过滤类别的主要内容,如果未能解决你的问题,请参考以下文章