私は$ _GETを使って自分のボタンをなめたとき私の投稿をランダムにしようとしていますが、それはただランダムな投稿で更新するのではなく私のページを更新し続けます。
<a href="<?php echo $my_query; ?>?p=random"><img src="<?php bloginfo('template_directory'); ?>/images/shakeup.png" alt="" /></a>
<?php if(isset($_GET['p']) && $_GET['p']=='random') {?>
<?php $my_query = new WP_Query('orderby=Rand'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
今このエラーを取得しているim「非オブジェクトのメンバ関数have_posts()への呼び出し」
メインクエリを操作しているのでない限り、直接クラスメソッド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(); ?>
注:このクエリに他の目的がある場合は、配列マージまたは条件付き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(); ?>
もっと多くのコードを見たり、それをどこに置いているのかわからずに言うのは難しいです。assumeあなたはクエリパラメータを保持する必要があるでしょう。 query_posts
行のサンプルと条件付け。
<?php
if( isset( $_GET['p'] ) && 'random' == $_GET['p'] ) {
query_posts('orderby=Rand');
}
?>
それが役立つことを願っています。
新しいWP_Query
オブジェクトを使用していますが、メインクエリにラッパー関数が使用されています。
試してください:
<?php if ($my_query->have_posts()) : ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>