繁体   English   中英

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

[英]How to get just one category and not all of them

这是问题所在:

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

如何将this限制为一个类别(按名称,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; ?>

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

而不是循环分类,请尝试如下操作:这里3是分类ID

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

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

get_cat_ID( $cat_name )

也许您可以只在您的foreach循环中采用第一类,而不是遍历所有这些? 您可以通过将变量设置为

$first = true;

在循环之前。 然后,在“ if”中设置foreach循环,以检查$ first == false。 如果是这样,请执行循环。 在循环中,执行您的工作并设置$ first = true,它将仅迭代一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM