1

在这种情况下,我想让代码仅在有超过 5 个回复时才起作用。

<?php if ( bbp_topic_reply_count() > 5 ) : ?>
    <?php query_posts('gdsr_sort=thumbs&post_type=bbp_reply&posts_per_page=2&post_parent='.$post->ID); ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <h2><?php  the_title(); ?></h2>
        <?php the_content(); ?>
        <?php bbp_reply_author_link( array( 'type' => 'avatar' ) ); ?>
        <?php bbp_reply_author_link( array( 'type' => 'name' ) ); ?>
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
<?php endif; ?>

回复有效地显示在下面的代码中:

<h4><?php bbp_topic_reply_count(); ?></h4>

但它似乎在 if 语句中不起作用。

有什么建议么?

4

4 回答 4

5

尝试使用:

if ( bbp_get_topic_reply_count() > 5)

与各种 PHP 库中的许多模板函数一样,此函数有两种变体。一, bbp_topic_reply_count(), 自动回显计数,而不是返回它。另一个,bbp_get_topic_reply_count()实际上将值返回给您,而不是回显它。

于 2011-03-24T09:56:58.380 回答
3

我可以建议使用

if (bbp_get_topic_reply_count() > 5):

原因是该函数bbp_topic_reply_count()不返回计数值,而是输出该值。因此,当您比较 bbp_topic_reply_count 的返回值时,它为 null,这会产生以下语句

if (0 > 5) :

这当然总是错误的。

于 2011-03-24T09:55:09.433 回答
0

我真的不知道 WordPress 的编码约定,但我确信您不必<?php每一行中打开和关闭 php 标签。

于 2011-03-24T09:55:10.850 回答
0

bbp_topic_reply_count()没有返回回复计数。它只是在呼应它。这意味着您不能将其用作比较,因为该函数不返回要比较的数字。我不熟悉 bbpress 功能,但您必须找到替代方法。

于 2011-03-24T09:56:39.650 回答