我有一个自定义的分类法,每个术语都有几个引号。两个术语(general
和yoga
) 共享相同的三个引号池。在我的front-page.php
我从每个学期中随机抽取一句话,作为每个章节的介绍。在条款的情况下general
和yoga
我已经包括了一个故障保护,变量$do_not_duplicate
, 为了防止在第二次抽签时再次选择相同的报价,并且我在一页上有两次相同的报价。第一个块的代码为:
<blockquote class="container" style="color:#287da2;">
<?php
$args = array(
\'post_type\' => \'quotes\',
\'thesections\' => \'general\',
\'posts_per_page\' => 1,
\'orderby\' => \'rand\'
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); $do_not_duplicate = $post->ID; ?>
<q><?php the_field( \'quote_text\' ); ?></q><br><cite><?php the_field( \'quote_origin\' ); ?></cite>
<?php endwhile;
wp_reset_postdata();
else: ?>
<p>DB error</p>
<?php endif; ?>
</blockquote>
第二块代码为:
<blockquote class="container" style="color:#1f8665;">
<?php
$args = array(
\'post_type\' => \'quotes\',
\'thesections\' => \'yoga\',
\'posts_per_page\' => 1,
\'orderby\' => \'rand\'
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); if( $post->ID == $do_not_duplicate ) continue; ?>
<q><?php the_field( \'quote_text\' ); ?></q><br><cite><?php the_field( \'quote_origin\' ); ?></cite>
<?php endwhile;
wp_reset_postdata();
else: ?>
<p>DB error</p>
<?php endif; ?>
</blockquote>
问题是,它大部分时间都可以工作,但在重新加载两到三个页面后,如果引号正确更新并且没有显示重复项,那么第二个块会保持空白,没有输出,而第一个块会显示引号。日志中没有显示php错误,wp调试模式中也没有错误-无。这是因为术语中的引号太少(3个引号),还是代码中有错误?我真的不知道这种情况下的问题是什么,也不知道是什么原因导致每隔几次重新加载,第二个街区就没有演出。:/向拉尔夫致意