如何显示与当前查看的帖子来自相同分类的最近帖子?

时间:2012-01-19 作者:skxc

我想知道如何显示来自与当前正在查看的帖子相同分类法的最新帖子(使用自定义帖子类型和自定义分类法)。

如果它只是一个普通帖子的类别,那么它将如下所示:

<?php global $post;
$categories = get_the_category();
foreach ($categories as $category) :
?>
<h3>More News From This Category</h3>
<ul>
<?php
$posts = get_posts(\'numberposts=20&category=\'. $category->term_id);
foreach($posts as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
<li><strong><a href="<?php echo get_category_link($category->term_id);?>" title="View all posts filed under <?php echo $category->name; ?>">ARCHIVE FOR \'<?php echo $category->name; ?>\' CATEGORY &raquo;</a></strong></li>
<?php endforeach; ?>
</ul>
但对于自定义帖子/分类法,必须有一种不同的解决方案。到目前为止,在wordpress codex中找不到任何有用的内容。

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

您是否尝试过使用get_the_terms()?

从您的代码示例来看,快速而脏:

<?php 
global $post;
$terms = get_the_terms( $post->ID, \'some-term\' );
foreach ($terms as $category) :
?>
<h3>More News From This Category</h3>
<ul>
<?php
$posts = get_posts(\'numberposts=20&category=\'. $category->term_id);
foreach($posts as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
<li><strong><a href="<?php echo get_category_link($category->term_id);?>" title="View all posts filed under <?php echo $category->name; ?>">ARCHIVE FOR \'<?php echo $category->name; ?>\' CATEGORY &raquo;</a></strong></li>
<?php endforeach; ?>
</ul>
另请参见:the_terms()get_the_term_list()

SO网友:Stephen Harris

要获取术语(从名为\'my-taxonomy-name\') 与ID为的帖子关联$post_id:

$terms = get_the_terms( $post_id, \'my-taxonomy-name\' );
返回一个术语对象数组。(见Codex) 选择第一个,比如:$术语slug=$术语[0]->slug;

然后使用get_posts, 它接受我们的分类法作为键(请参见

$args = array(
   \'numberposts\' => 20,
   \'my-taxonomy-name\' =>  $term-slug 
);
$posts = get_posts ( $args );
请参见Codex on custom taxonomies and get_posts

结束

相关推荐