WordPressでカスタムフィールドの値で並べ替え出来るようにする

作成日:

例えば投稿の表示件数をカスタムフィールド「post_view」に保存するように設定しているとします。

今回は、アーカイブページで並べ替えソート用のフォームを設置して、そこに「人気記事順」を追加する方法です。

まずはソート用のフォームはこんなコード。

PHP functions.php [1-20]
function sort_post() {
	$option_ary = array(
		'date'          => '新着順',
		'rand'          => 'ランダム',
		'comment_count' => 'コメント件数順',
		'post_view'     => '人気記事順',
	);
	if ( isset ( $_GET['orderby'] ) ) {
		$sort_val = $_GET['orderby'];
	}
	$option = '';
	foreach ( $option_ary as $key => $val ) {
		$selected = '';
		if ( $key === $sort_val ) {
			$selected = ' selected';
		}
		$option .= '<option value="' . add_query_arg( array( 'orderby' => $key ), get_pagenum_link( 1 ) ) . '"' . $selected . '>' . $val . '</option>' . "n";
	}
	return '<select class="form-control" onchange="location = this.value;">' . "n" . $option . '</select>' . "n";
}

add_query_arg()を使ってパラメータ付きのURLを生成して、セレクトフォームで選択したらそのURLにリンクするようにしています。

次に人気記事順を選択した際に、カスタムフィールド「post_view」の値が多い順にソートするにはこんなコード。

PHP functions.php [21-30]
function sort_metakey() {
	if ( isset ( $_GET['orderby'] ) ) {
		if ( 'post_view' === $_GET['orderby'] ) {
			set_query_var( 'orderby', 'meta_value_num' );
			set_query_var( 'meta_key', $_GET['orderby'] );
			set_query_var( 'order', 'DESC' );
		}
	}
}
add_filter( 'pre_get_posts', 'sort_metakey' );

これで、

Shell
hogehoge.com/?orderby=post_view

にアクセスすると人気記事順に並べ替えられます。

favicon
Querying by meta keys in wordpress URL string https://stackoverflow.com/questions/22773873/querying-by-meta-keys-in-wordpress-url-string

I feel like I've been all around the web and back again looking for an answer to this and it's really starting to grind my gears. Not sure if this is the correct way to do it, but I want to add a


最近USBケーブルを買ったらケーブルをまとめるマジックテープが従来のケバケバトゲトゲと比べて薄型に進化していることに感銘!

新しいマジックテープ
新しいマジックテープ

これは入手せねばとamazonで検索。

ケーブル結束バンド ケーブルまとめ 結束バンド ケーブルバンド コード まとめる ケーブルタイ 固定 ベルト50本15CM
ケーブル結束バンド ケーブルまとめ 結束バンド ケーブルバンド コード まとめる ケーブルタイ 固定 ベルト50本15CMケーブル結束バンド ケーブルまとめ 結束バンド ケーブルバンド コード まとめる ケーブルタイ 固定 ベルト50本15CMケーブル結束バンド ケーブルまとめ 結束バンド ケーブルバンド コード まとめる ケーブルタイ 固定 ベルト50本15CMケーブル結束バンド ケーブルまとめ 結束バンド ケーブルバンド コード まとめる ケーブルタイ 固定 ベルト50本15CMケーブル結束バンド ケーブルまとめ 結束バンド ケーブルバンド コード まとめる ケーブルタイ 固定 ベルト50本15CMケーブル結束バンド ケーブルまとめ 結束バンド ケーブルバンド コード まとめる ケーブルタイ 固定 ベルト50本15CM
YOKELLMUX 📌 ケーブル結束バンド ケーブルまとめ 結束バンド ケーブルバンド コード まとめる ケーブルタイ 固定 ベルト50本15CM
699 円~ 2021年10月27日 6:30 PM時点のAmazon.co.jp 価格 価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点でAmazon.co.jpに表示されている価格および発送可能時期の情報が適用されます。
【高品質素材】100%のプレミアムナイロン素材を採用し、しっかりしてコネクタでき、繊維質で柔軟性に優れているので、結束対象物にキズをつける危険性が低い。結束バンド マジックテープ。耐熱性の高い高品質 防水性、耐久性、耐摩耗性、再使用性があります。
amazonでチェック
本サイト上で表示されるコンテンツの一部は、アマゾンジャパン合同会社またはその関連会社により提供されたものです。これらのコンテンツは「現状有姿」で提供されており、随時変更または削除される場合があります。

思いの外幅が広かったけれど、ケーブルをまとめる以外にも、苗を支柱に固定するのにも使えそうだ。

物草 灸太郎
物草 灸太郎

WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。

Loading...

コメントをどうぞ

  • メールアドレスが公開されることはありません。
  • コメント欄にURLは入力できません。
  • このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。