我想将投资组合项目的所有帖子作为一个类别提取出来。但这段代码对我不起作用。
<?php if(have_posts()):
if(in_category('Portfolio Projects')):
while(have_posts()):
the_post();
?>
<p><?php the_title(); ?></p>
<?php
endwhile;
endif;
endif;
?>
答案 0 :(得分:0)
我认为按照你编写的顺序是不可能的。在您想要决定是否属于某个类别时,不会设置$ post对象。
请看这里 the_post():https://developer.wordpress.org/reference/functions/the_post/
以下代码应该有效:
<?php
if(have_posts()):
while(have_posts()):
the_post();
if(in_category('Portfolio Projects')):
?>
<p><?php the_title(); ?></p>
<?php
endif;
endwhile;
endif;
?>
但我认为仅查询您想要的类别中的帖子会更好,而不是查询所有帖子,然后决定(适用于帖子和类别 - 没有自定义内容):
<?php $args = array(
'posts_per_page' => -1,
'offset' => 0,
'category' => '',
'category_name' => 'Portfolio Projects',
'orderby' => 'date',
'order' => 'DESC',
'include' => '',
'exclude' => '',
'meta_key' => '',
'meta_value' => '',
'post_type' => 'post',
'post_mime_type' => '',
'post_parent' => '',
'author' => '',
'author_name' => '',
'post_status' => 'publish',
'suppress_filters' => true
);
$posts_array = get_posts( $args ); ?>
这是该功能的链接:https://codex.wordpress.org/Template_Tags/get_posts
获得 $ post_array 后,你必须遍历它并按照你想要的方式显示它们。