WordPress的模板 - 显示由子类别分离的父类别下的所有帖子
问题描述:
我想创建一个类别模板,显示每个子类别下的父类别标题,子类别标题和所有帖子。WordPress的模板 - 显示由子类别分离的父类别下的所有帖子
所以它看起来像这样
家长 子目录 帖子#1 帖子#2 子目录 帖子#3 帖子#4
这是我有这么远,但我坚持如何前进。
<?php if (have_posts()) : ?>
<div class="section-header">
<h1 class="page-title"><?php single_cat_title(''); ?></h1>
<!-- <?php
the_archive_title('<h1 class="page-title">', '</h1>');
the_archive_description('<div class="taxonomy-description">', '</div>');
?> -->
</header><!-- .page-header -->
<p>Some text</p>
<?php
// The Query
$the_query = new WP_Query(array('cat' => 72));
// The Loop
if ($the_query->have_posts()) {
echo '<ul>';
while ($the_query->have_posts()) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
/* Restore original Post Data */
wp_reset_postdata();
} else {
// no posts found
}
?>
<?php else : ?>
<?php ?>
<?php endif; ?>
答
在你的主题的functions.php
function display_category_posts($cat_id) {
echo get_cat_name($cat_id);
$the_query = new WP_Query(array('cat' => $cat_id));
// you loop code
wp_reset_query(); //or wp_reset_postdata(), not put it in have_posts() block, we should always reset query even there no posts found.
}
在您的类别模板
// get current category of viewing page.
$current_cat_obj = get_queried_object();
// try to get sub categories.
$sub_cat_ids = get_terms('category', array(
'parent' => $current_cat_obj->term_id,
'hide_empty' => false,
'fields' => 'ids'
));
// if the category of current page is a top-level category and has sub categories, display is as sub category posts view.
if(!$current_cat_obj->parent && !empty($sub_cat_ids)) {
foreach($sub_cat_ids as $sub_cat_id) {
display_category_posts($sub_cat_id);
}
} else {
// otherwise, display it as normal category view.
}
谢谢但是这给我下面的错误“警告:isset或空在非法偏移类型/homepages/9/d389995387/htdocs/marketsquaresj/wp-includes/class-wp-term-query.php on line 376“你能告诉我类别模板代码应该插入到我提供的代码中吗?要重新放置ced? – user1488639
对不起,我的错误。它应该是'object_id',而不是'object',我已经更新了代码,再试一次。 – Cl0udSt0ne
真棒,修复它谢谢! – user1488639