不能使用直接类方法have_posts()
或the_post()
除非您使用的是主查询。要修改主查询,必须使用query_posts
.
如果要创建新的查询对象,需要从新的查询对象调用这些方法,如Rarst在其示例中所示。
所以你要么。。。
更改主查询
<?php query_posts(\'orderby=rand\'); ?>
<div id="front-video-container">
<?php if( have_posts() ) : ?>
<?php while( have_posts() ) : the_post(); ?>
NOTE: 如果此查询有其他用途,则可能需要使用数组合并或条件
query_posts
思维方式
或者,创建新查询
<?php $my_query = new WP_Query(\'orderby=rand\'); ?>
<div id="front-video-container">
<?php if( $my_query->have_posts() ) : ?>
<?php while( $my_query->have_posts() ) : $my_query->the_post(); ?>
很难说没有看到更多的代码,也不知道放在哪里,我假设您需要保留查询参数,在这种情况下,我建议使用第一个示例并将
query_posts
线例如:。
<?php
if( isset( $_GET[\'p\'] ) && \'random\' == $_GET[\'p\'] ) {
query_posts(\'orderby=rand\');
}
?>
希望这有帮助。