我已经创建了一个页面模板,目标是创建一个循环,按类别名称获取所有帖子。类别名称从页面名称的slug中传递。我还没能让它完全发挥作用。
EDIT 以下是我的循环函数(根据答案更新):
global $post;
$page_slug = $post->post_name;
$category_query = new WP_Query(array(
\'category_name\' => $page_slug
));
if ($category_query->have_posts()) :
while ($category_query->have_posts()) :
$category_query->the_post();
$output = \'<h2 class="entry-title" itemprop="headline"><a href="\'.get_the_permalink().\'">\'.get_the_title().\'</a></h2>\';
$output .= \'<div class="entry-content" itemprop="text">\'.get_the_content().\'</div>\';
endwhile;
else :
$output = \'<h3>No posts found under "\'.$page_slug.\'"</h3>\';
endif;
wp_reset_postdata();
echo $output;
我在某个地方搞砸了,因为我得到的只是一张空白的白纸。关于如何修复我的循环以实现我所寻找的目标,有什么建议吗?
最合适的回答,由SO网友:tfrommen 整理而成
您缺少一个endwhile;
.由于要连接,因此需要使用get_*
标题、永久链接和内容您正在使用$page_slug
此处和$post_slug
那里只需使用一个相同的变量即可将while
在支架内循环请参阅更新的代码:
global $post;
$page_slug = $post->post_name;
$args = array(
\'category_name\' => $page_slug
);
$category_query = new WP_Query($args);
if ($category_query->have_posts()) {
while ($category_query->have_posts()) {
$category_query->the_post();
?>
<h2 class="entry-title" itemprop="headline"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div class="entry-content" itemprop="text"><?php the_content(); ?></div>
<?php
}
} else {
?>
<h3>No posts found under "<?php echo $page_slug; ?>"</h3>
<?php
}
wp_reset_postdata();