質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.12%

Search & Filter Proで検索結果を価格の安い順に並べ替えしたい

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 211

wordpressでSearch & Filter Proを使って、CPTUIで作った物件(bukken)にACFで作ったフィールドを適用して登録し、
そのフィールドをSearch & Filter Proで関連付けして、選択しなどでも複合絞り込み検索が出来るようにはなったのですが、

その検索結果は、登録が新しい順にしか表示されていないので、価格が安い順に並べ替えたいと思っています。

以下に、Search & Filter Proの絞込み検索結果一覧をショートコードで表示させるときに使う、results.phpを記載します。
一部、表示項目を追加するためにACFで作って登録した内容(画像main_photo、住所adress、間取りmadorinew、値段nedan)を表示させたり、
英語表記を日本語に変更しています。

if ( $query->have_posts() )
{
    ?>




    <?php echo $query->found_posts; ?>件見つかりました。<br /><?php echo $query->max_num_pages; ?>ページ中/<?php echo $query->query['paged']; ?>ページ<br />





    <?php
    while ($query->have_posts())
    {
        $query->the_post();

        ?>
        <div>



<!-- メイン写真の表示 -->
<figure>

<div class="item_img">
<?php
    $attachment_id = get_field('main_photo');
    $size = "itemphotoall-thumbnails"; // (thumbnail, medium, large, full or custom size)
    $image = wp_get_attachment_image_src( $attachment_id, $size );
    $attachment = get_post( get_field('main_photo') );
    $alt = get_post_meta($attachment->ID, '_wp_attachment_image_alt', true);
    $image_title = $attachment->post_title;
?>
<a href="<?php the_permalink(); ?>"><img src="<?php echo $image[0]; ?>" width="<?php echo $image[1]; ?>" height="<?php echo $image[2]; ?>" alt="<?php echo $alt; ?>" /></a>

</div><!-- shinchiku_img -->
</figure>
<!-- メイン写真の表示 -->


            <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>



<?php the_field('adress',$post->ID); ?>
<?php the_field('madorinew',$post->ID); ?>
<?php the_field('nedan',$post->ID); ?>




            <p><br /><?php the_excerpt(); ?></p>
            <?php 
                if ( has_post_thumbnail() ) {
                    echo '<p>';
                    the_post_thumbnail("small");
                    echo '</p>';
                }
            ?>
            <p><?php the_category(); ?></p>
            <p><?php the_tags(); ?></p>
            <p><small><?php the_date(); ?></small></p>

        </div>

        <hr />
        <?php
    }
    ?>
    Page <?php echo $query->query['paged']; ?> of <?php echo $query->max_num_pages; ?><br />

    <div class="pagination">

        <div class="nav-previous"><?php next_posts_link( 'Older posts', $query->max_num_pages ); ?></div>
        <div class="nav-next"><?php previous_posts_link( 'Newer posts' ); ?></div>
        <?php
            /* example code for using the wp_pagenavi plugin */
            if (function_exists('wp_pagenavi'))
            {
                echo "<br />";
                wp_pagenavi( array( 'query' => $query ) );
            }
        ?>
    </div>
    <?php
}
else
{
    echo "その条件での物件はありません。";
}
?>

これで、検索結果に自分の表示させたいものはいくらでも追加できるのですが、
値段の安い順にソート(並び替え)したいと思っております。

しかしながら、なんちゃってPHPなので、
ACFで作ったフィールド(nedan)に登録している、数字の大きい小さい順で並べ替える方法がわかりません。

ちなみに、ACFに登録しているときのフィールドタイプは数値にしてあります。
イメージ説明

どなたか、ACFで作ったフィールドに登録した値でソートする記述を、どう書けば良いのか?
また、results.phpのどこに書けば良いのかお教えいただけましたらと思っておりますです。m(_ _)m

※ちなみに、archive-bukken.phpで表示する物件一覧は、以下のように指定することで数値が小さい順に並べ替えることはできました。

<?php
$args = array(
    'post_type' => 'bukken',
    'paged' => $paged,
    'posts_per_page' => 50,
    'orderby' =>' meta_value_num', //メタ(カスタムフィールドの値)でソートすることを宣言
    'meta_key' => 'nedan', //どのキーの値を基準にするか
    'order' => 'ASC', //昇順か降順かを指定。ASCは小さい順。DESCは大きい順
    );
?>

search&filter proのショートコードでの検索結果一覧を昇順、降順に並び替える方法ですが、、
降順にすることはできましたが、昇順(数字の小さいほうから並び替え)にする方法がまだわかりません。
ちなみに、ショートコードでの表示の場合で、降順(数字の大きい順に並び替え)は、search&filter proの中の設定でした

イメージ説明

Secondary Sort orderのところをAscendingにすれば良いだけでした!!
AscendingがASCのことだと気付きませんでした。。

・Ascending ⇒ ASC
・Decending ⇒ DESC

のことだったんですね!!

イメージ説明

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる