Что не так с этим оператором PHP If, который использует оператор «больше чем»? - PullRequest
1 голос
/ 24 марта 2011

В этом случае я хочу, чтобы код работал только при наличии более 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 ]

5 голосов
/ 24 марта 2011

Попробуйте использовать:

if ( bbp_get_topic_reply_count() > 5)

Как и для многих шаблонных функций в различных библиотеках PHP, существует два варианта этой функции.Один, bbp_topic_reply_count(), автоматически отображает счет, а не возвращает его.Другой, bbp_get_topic_reply_count() на самом деле возвращает вам значение, а не повторяет его.

3 голосов
/ 24 марта 2011

Могу ли я предложить использовать

if (bbp_get_topic_reply_count() > 5):

Причина этого заключается в том, что функция bbp_topic_reply_count() не возвращает значение счетчика, а выводит это значение.Поэтому, когда вы сравниваете возвращаемое значение bbp_topic_reply_count, оно равно null, и это приводит к следующему утверждению

if (0 > 5) :

Что, конечно, всегда ложно.

0 голосов
/ 24 марта 2011

bbp_topic_reply_count() не возвращает счетчик ответов.Это только повторяет это.Это означает, что вы не можете использовать его для сравнения, потому что функция не возвращает число для сравнения.Я не знаком с функциями bbpress, но вам придется найти альтернативу.

0 голосов
/ 24 марта 2011

Я действительно не знаю соглашений о кодировании WordPress, но я уверен, что вам не нужно открывать и закрывать тег php <?php в каждой строке .

...