如何只获得一个类别,而不是全部

时间:2014-02-06 18:03:39

标签: php wordpress

问题在于:

我一直在使用此代码将其他帖子显示在页面末尾(作为列表),这些帖子应与访问者当前正在阅读的帖子属于同一类别。它工作正常,但出现的问题是当帖子被分配到多个类别,然后我有多个不需要的列表。

如何将此限制为仅限一个类别(按名称,或通过ID或第一个类别),以便当显示包含多个类别的帖子时,循环显示仅来自一个类别的帖子?

很多人。

<?php global $post;
$categories = get_the_category();
foreach ($categories as $category) :
?>
<h3 class="naslovostalih">Ostali članci iz ove kategorije:</h3>
<ul class="clanciostalih">

<?php
$posts = get_posts('numberposts=10&category='. $category->term_id);
foreach($posts as $post) :
?>
<li>
<?php
$title = get_the_title($ID);
$link = get_permalink();
printf('<a class="linkpost" title="%s" href="%s">%s</a>', $title, $link, $title);
the_post_thumbnail('thumb-232');
echo '<div id="excerptcu">';
echo excerpt(25);
echo '</div>';
?>
<p class="more-link-wrapper2"><a href="<?php the_permalink(); ?>" class="read-more     button"><?php _e( 'Opširnije &raquo;', 'fearless' ); ?></a></p>
</li>
<?php endforeach; ?>
</ul>
<?php endforeach; ?>

2 个答案:

答案 0 :(得分:0)

您可以像在代码中一样将类别ID添加到get_posts

不是循环类别,而是尝试如下:此处3是类别ID

$posts = get_posts('category=3&numberposts=10');

此外,如果您想按名称检索特定类别的类别ID,可以使用

get_cat_ID( $cat_name )

答案 1 :(得分:0)

也许你可以在你的foreach循环中取第一个类别而不是遍历所有这些类别?您可以通过设置像

这样的变量来完成此操作
$first = true;

在循环之前。然后,将foreach循环设置为“if”,检查$ first == false。如果是,请执行循环。在你的循环中,做你的东西并设置$ first = true,它只会迭代一次。