• 解決済 eghato

    (@eghato)


    お世話になっております。
    wp_queryでorderbyだけが効かない現象に遭いました。
    コードは以下になります。

    <ul class="pick-box cf">
        <?php
       remove_all_filters('posts_orderby');
          $pick_query = new wp_query(array(
            'orderby' => 'rand',
            'order'    => 'ASC',
            'posts_per_page' => 4,
            'post_type' => 'post',
          )); ?>
        <?php if ($pick_query->have_posts()) : while ($pick_query->have_posts()) : $pick_query->the_post(); ?>
            <li>
            <a class="hover80" href="<?php the_permalink(); ?>"><?php echo wp_get_attachment_image(post_custom('画像'),array(170)); ?></a>
            <h2><a href="<?php the_permalink(); ?>"><?php echo post_custom('店舗名') ?></a></h2>
                <?php
                $cat = get_the_category();
                $cat = $cat[0];
                $cat_slug = $cat -> slug;
                $category_link = get_category_link( $cat );
                 ?>
            <p><a href="<?php echo esc_url( $category_link ); ?>">
                <?php echo get_cat_name($cat->term_id); ?>
              </a></p>
            </li>
        <?php endwhile;
         wp_reset_postdata();
         else: ?>
          <li>記事が見つかりませんでした</li>
        <?php endif; ?>
        </ul><!-- pick-box -->

    記述場所はトップページ、テーマはオリジナルです。
    またトップページには他にサブクエリが4つ存在し、他の箇所のorderbyも効いていない状態です。
    私は何かまずい記述をしていますでしょうか。
    あるいはorderbyは何かと競合することがあるのですか?

    何か分かりましたらご教授願いませんでしょうか。
    よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 試しにこのコードをテストサイトにコピペしたところ、remove_all_filters(‘posts_orderby’);の前に全角スペースが入っていましたが、それを除去したところこちらでは何の問題もなくランダムに表示できました。(ここへコピペした際に手動でインデントいれたか何かですよね。)

    「効かない」とはどのように「効いていない」のですか?

    (キャッシュ系プラグインを利用している場合同じ結果が表示される、というのもありますがそういう物ではないですよね。)

    トピック投稿者 eghato

    (@eghato)

    Hinaloeさん、お返事ありがとうございます。

    一からやり直して検証したところ、投稿記事の順番を入れ替える「Intuitive Custom Post Order」というプラグインがランダムソートを打ち消していたようです。
    管理者が任意で記事をソートする機能は必要なので、他のプラグインを調べてみようかと思います。

    コードが動くとHinaloeさんに教えて頂けたおかげで、すぐに問題点が発見できました。
    お騒がせしてすいません、本当にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「wp_queryで指定したorderbyが効かない」には新たに返信することはできません。