wordpressで記事の並び替えについて

久々に自分用メモです。
WPネタですので興味ない人はスルーで。
完全なメモですので。

広告

並び替えは『GET』で簡単に

先日勉強がてら作った3Dプリンタの商品収集サイト

そこで金額順の並び替え等を出来るようにしました。
その時のメモです。

手順としてはパラメータを渡して動作させれば良いだけ。

        if ( $query->is_category() && isset($_GET['pricehl'] )){
            
            if( $_GET['pricehl'] == 'low' ){
                $query->set('orderby','meta_value_num');
                $query->set('meta_key','LastPrice');
                $query->set('order','ASC');
            }
            elseif( $_GET['pricehl'] == 'high' ){
                $query->set('orderby','meta_value_num');
                $query->set('meta_key','LastPrice');
                $query->set('order','DESC');
	           }
        }

↑は3dプリンタプライムのコードの一部ですが、[‘pricehl’]がある場合、lowもしくはhighで順番を変える。
ただそれだけ。
上ではカスタムフィールドの値でとっている。

『pre_get_posts』にフックすると比較的簡単に出来ると思う。

<?php $cat = get_queried_object();?>
<a href="<?php echo get_category_link($cat -> cat_ID); ?>?pricehl=low">安い順</a>
<a href="<?php echo get_category_link($cat -> cat_ID); ?>?pricehl=high">高い順</a>

こんな感じで渡すためのリンクを作れば良い。
↑はカテゴリーページに付けたコードなので、検索ページとかはコードが変わる。

検索ページとかでカテゴリの絞り込みをした上でパラメータを渡せば、疑似的なカテゴリを作れる。
「PLA」の検索結果
↑のページとかはそーゆーページ。

他にも並び替え条件の組み合わせとかを作っておけば色々出来る。
○○円~○○○円まで
みたいな絞り込みも可能。

作ったサイトではプライム対象に限定した為、そんなに商品数が増え無かった為やってないけど...。

大変便利ですな。

久々にコード触ると色々思い出すのに時間がかかります。
なのでメモっとくと良い。

PCの中にも入ってるけど、文字の羅列から探すより、自分のブログから検索したほうが早いので便利。

ではでは

広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です