Beldadのトップページ商品リストをランダム表示させたい

ホーム フォーラム テンプレート(テーマ) Beldadのトップページ商品リストをランダム表示させたい

このトピックには2件の返信が含まれ、2人の参加者がいます。1 ヶ月前 ksi-t さんが最後の更新を行いました。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #90382

    ksi-t
    参加者

    自社のウェブサイトを管理しているものです。
    Beldadのテーマオプションで「トップページ商品リスト」がありますが、表示される商品が登録の新しいものから順番になっているため、ランダムで表示されるようにしたいと考えています。
    特定のカテゴリではなくすべての商品をランダムに表示したいです。
    管理画面で選べる項目はカテゴリー、件数、スライドorグリッドの3点となっており、順番は変えられません。

    過去トピックを参考に試したのですが、行き詰ったので質問します。

    wp-content/themes/welcart_basic-beldad/front-page.php
    238行目付近にある
    <?php while ( have_posts() ) : the_post(); usces_the_item(); ?>
    の部分を下記のようにしました。

    <?php query_posts(array(‘orderby’ => ‘rand’)); while ( have_posts() ) : the_post(); usces_the_item(); ?>

    こうするとランダムで表示することはできましたが、商品以外の投稿記事も入ってしまいます。
    query_posts間違っているのか、query_posts(array(‘orderby’ => ‘rand’));の場所が違うのか、、

    とりあえずランダム表示にはできたので、あとは商品のみ抽出する方法が知りたいのですが、どなたかご存じの方ご教示お願いいたします。

    #90383

    yanagiya_zero
    モデレーター

    ksi-t様

    WordPressのループの問題と思いましたので、
    以下コードで動作するかもしれません(未検証です)

    <?php
    $args = [
        'posts_per_page' => 5,
        'category_name'  => 'item',
        'orderby'        => 'random',
    
    ];
    $the_query = new WP_Query( $args );
    if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); usces_the_item();
    
    ---ループ内処理、中略---
    
    endwhile;
    else:
    endif;
    wp_reset_postdata();

    ループを新しく発行する場合、wp_queryの方が推奨となります。
    posts_per_pageは表示したい件数に変更ください。
    また商品に絞るため、category_nameの記述が必要になるかと思います。

    #90384

    ksi-t
    参加者

    yanagiya_zero様

    ご教示ありがとうございます。
    おかげさまで解決しました。

    そのままですとランダムにならなかったので、
    ‘orderby’ => ‘random’,
    の部分だけ、randomをrandに変えたらうまくいきました。

    どうもありがとうございました。

3件の投稿を表示中 - 1 - 3件目 (全3件中)

このトピックに返信するにはログインが必要です。