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 ライブラリの多くのテンプレート関数と同様に、この関数には 2 つのバリエーションがあります。One, bbp_topic_reply_count(), は、カウントを返すのではなく、自動的にエコーします。もう1つ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 に答える