【未解決のまま解決済みボタンを押してしまったので再度質問させてください!!】
カスタム投稿記事一覧ページにソート機能を設置しています。
現在、未ソートの状態だとデフォルトの仕様で新着順に並んでいますが、これを五十音順で表示しておきたいです(つまり、記事一覧ページを開いて、未ソートの状態で五十音順に並んでいるという意味です)。
どのようにコードを書いたらよいのか分からず質問させて頂きました。
よろしくお願いします!
<!-- ソート部分 --> <h3>並び替え:</h3> <ul> <li><a href="<?php echo add_query_arg( array('orderby' => 'date', 'order' => 'DESC'), get_pagenum_link(1) ); ?>">新着順</a></li> <li><a href="<?php echo add_query_arg( array('meta_key' => 'views', 'orderby' => 'meta_value_num', 'order' => 'DESC'), get_pagenum_link(1) ); ?>">閲覧数の多い順</a></li> <li><a href="<?php echo add_query_arg( array('meta_key' => 'phonetic', 'orderby' => 'meta_value', 'order' => 'ASC'), get_pagenum_link(1) ); ?>">50音順</a></li> </ul>
■アドバイスを頂いた後に試したこと
「pre_get_postsで、メインクエリかつ当該ページかつquery_argに指定が無い時に指定したいものを設定すればよいのでは。」とのアドバイスを頂いたのですが、具体的な記述方法が分からないままです。。。
functions.phpに以下のように書いてみたりしましたが、デフォルトで50音順にはなりますが、ソートボタンが作動しなくなります。。
//functions.php function twpp_change_sort_order( $query ) { if($query->is_archive()){ $query->set( 'meta_key', 'phonetic' ); $query->set( 'order', 'ASC' ); $query->set( 'orderby', 'meta_value' ); }else{ return; } } add_action( 'pre_get_posts', 'twpp_change_sort_order' );
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/21 22:53
2019/03/22 02:20
2019/03/26 04:34
2019/03/26 04:50