我正在尝试在wordpress自定义主题中创建相关的帖子部分。这里的目标是,如果用户查看某个类别的帖子,它还将显示下面该类别的所有帖子。我在下面附上了一张图片。
http://i255.photobucket.com/albums/hh140/testament1234/relatedposts_zpsa830adfc.jpg
我如何实现这一目标?我是否像这样使用wp_query?
<?php query_posts('cat=6', 'posts_per_page=-4=-'); if(have_posts()) : while(have_posts()) :the_post(); ?>
上面的代码设置了获得帖子的类别。 '猫'
解决 kwncc
<div id="post-container" class="eleven columns alpha omega post">
<?php $postCategories = ''; while ( have_posts() ) : the_post(); ?>
<h2 class="post-title"><?php the_title() ?></h2>
<?php setPostViews(get_the_ID()); ?> <!-- Set Post Views -->
<ul class="meta-icons-large">
<li id="meta-author-large"><span><?php the_author_posts_link() ?> /</span></li>
<li id="meta-categories-large"><span><?php the_category(', ') ?> /</span></li>
<li id="meta-comments-large"><span><?php comments_number() ?> /</span></li>
<li id="meta-date-large"><span><?php the_time('F jS, Y') ?> /</span></li>
<li id="meta-views-large"><span><?php echo getPostViews(get_the_ID()); ?></span></li> <!-- Display Post Views -->
</ul>
<?php the_content(); ?>
<?php endwhile; ?>
</div>
<div id="related-posts-container" class="eleven columns alpha omega related-post">
<h2>related posts</h2>
<?php $postCatIds = ''; foreach($postCategories as $catIndex => &$catValue){
$postCatIds .= $category->cat_ID; if( $catIndex < (count($postCategories)-1)){ $postCatIds .= ', ';
}
}
?>
<?php query_posts('cat='.$postCatIds, 'posts_per_page=4'); if(have_posts()) : while(have_posts()) { the_post(); } ?>
<div id="related-post-thumbnail-container" class="three columns alpha related-posts">
<h3><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
</div>
<?php endwhile; endif; wp_reset_query();?>
</div>
<div id="comments-container" class="eleven columns alpha omega comments">
<?php comments_template('', true); ?>
</div>
</div>
答案 0 :(得分:1)
我建议您不要在页面加载时加载相关帖子,因为这会严重损害您网站的效果。
WordPress的免费WordPress插件相关帖子会自动查找相关帖子(以及其他基于标题的帖子)并为您缓存它们,为您提供真实的相关帖子,而不会损害您网站的性能。完成自动链接后,您可以根据需要手动添加,编辑或删除相关帖子。该插件还附带模板标签,因此您可以在自定义主题中的任何位置显示相关帖子。只需在主题中使用rp4wp_children()
,即可显示相关帖子。
您可以通过WordPress.org repo试试:http://wordpress.org/plugins/related-posts-for-wp/
答案 1 :(得分:0)
此页面包含2个不同的循环: 1.主要内容 - 帖子的文章 2.相关职位。
对于第一部分,您只需要包含循环。此外,由于您要查找与本文相关的帖子,您还必须获取当前的帖子类别。
PHP代码:
$postCategories = '';
if(have_posts()) : while(have_posts()){
the_post();
$postCategories = get_the_category();
...
}
然后,对于要包含相关帖子的第二部分,您可以获取与当前帖子相关的类别ID,并创建所需的查询。
// get comma separated category IDs
$postCatIds = '';
foreach($postCategories as $catIndex => &$catValue){
$postCatIds .= $category->cat_ID;
if( $catIndex < (count($postCategories)-1)){
$postCatIds .= ', ';
}
}
//query the related categories posts
query_posts('cat='.$postCatIds, 'posts_per_page=4');
if(have_posts()) : while(have_posts()) {
the_post();
...
}
希望有所帮助!