我有一个功能,显示在同一个自定义分类法下称为“问题”的所有帖子。我需要对其进行调整,以便进一步缩小以仅显示同一类别下的帖子。
我看了一下WordPress的get_the_category()函数,但没有太多运气。
以下是代码:
<?php
$issueid = get_the_term_list( $post->ID, 'issue', '', ', ', '' );
$postslist = get_posts("numberposts=100&issue=$issueid");
foreach ($postslist as $post) :
setup_postdata($post); ?>
<div class="sidebar-box">
<div class="sidebar-left">
<p><a href="<?php echo get_page_link($page->ID) ?>"><?php the_title(); ?></a></p>
<p><?php the_date(); ?></p>
</div>
<div class="sidebar-right">
<?php echo get_the_post_thumbnail($page->ID, 'thumbnail'); ?>
</div>
</div>
<?php endforeach; ?>
这将正确显示当前类别ID:
<?php
$category = get_the_category();
echo $category[0]->cat_id;
?>
所以我尝试编辑第一批代码,只显示当前类别ID中的帖子,但它仍然会返回所有内容:
$category = get_the_category();
$categoryid = $category[0]->cat_id;
$issueid = get_the_term_list( $post->ID, 'issue', '', ', ', '' );
$postslist = get_posts("numberposts=100&issue=$issueid&category=$categoryid");
foreach ($postslist as $post) :
setup_postdata($post); ?>
这是get_the_category函数引用:http://codex.wordpress.org/Function_Reference/get_the_category
非常感谢任何帮助。
谢谢,
瓦德
答案 0 :(得分:1)
get_the_term_list()
返回一个html字符串,而不是相关类别的ID。因此,当您将$issueid
传递给get_posts()
时,您将包含一个html字符串,而不是整数。我相信你收到所有帖子的原因是因为WP忽略了那个查询var,因为它不是它所期望的。
您想使用get_posts()
并添加“问题”ID,以便为所有帖子分配“问题”类别。
您希望使用get_the_category()
获取与帖子相关的所有类别。
您是否可以澄清是否要显示与“问题”类别下当前帖子相同类别的所有帖子?您想在当前帖子之后立即列出相关帖子,还是要在侧栏中的所有“问题”帖子中显示所有相关帖子?