我希望在WordPress中显示按类别分组的帖子标题:
类别:苹果 - 帖子标题一 - 帖子标题二 - 帖子标题....
类别:橘子 - 帖子标题一 - 帖子标题二 - 帖子标题....
我需要代码来完成此操作,而不是插件或类别小部件。
答案 0 :(得分:1)
这类似于创建“按类别归档页面”,可以使用以下代码完成:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>
<div class="entry">
<?php the_content('<p class="serif">Read the rest of this page »</p>'); ?>
<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
</div>
</div>
<?php endwhile; endif; ?>
<!-- Category Archive Start -->
<ul class="catArchive">
<?php
$catQuery = $wpdb->get_results("SELECT * FROM $wpdb->terms AS wterms INNER JOIN $wpdb->term_taxonomy AS wtaxonomy ON ( wterms.term_id = wtaxonomy.term_id ) WHERE wtaxonomy.taxonomy = 'category' AND wtaxonomy.parent = 0 AND wtaxonomy.count > 0");
$catCounter = 0;
foreach ($catQuery as $category) {
$catCounter++;
$catStyle = '';
if (is_int($catCounter / 2)) $catStyle = ' class="catAlt"';
$catLink = get_category_link($category->term_id);
echo '<li'.$catStyle.'><h3><a href="'.$catLink.'" title="'.$category->name.'">'.$category->name.'</a></h3>';
echo '<ul>';
query_posts('cat='.$category->term_id.'&showposts=5');?>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
<li><a href="<?php echo $catLink; ?>" title="<?php echo $category->name; ?>">More <strong><?php echo $category->name; ?></strong></a></li>
</ul>
</li>
<?php } ?>
</ul>
<!-- Category Archive End -->
请注意,上面的代码只会显示与其关联的帖子的类别,否则会跳过它们。
此外,它只会显示每个类别下的最后5个帖子。您可以通过更改showposts变量后的数字来更改它。例如,您可以更改:
query_posts('cat='.$category->term_id.'&showposts=5');
显示10个帖子:
query_posts('cat='.$category->term_id.'&showposts=10');
在开头将上面的行替换为循环,你应该有一个功能“按类别存档”页面。