小金井にあるWEB制作会社の備忘録

MEMORANDUM

WordPress(ワードプレス)で投稿カテゴリーに追加したカスタムフィールドを使って並びを操作する

投稿カテゴリーに独自カスタムフィールドを追加して並び順番等を操作する場合、カスタムフィールドを直接キーに設定してデータを呼び出すことができなかったので、対応方法をメモ

PHP

$categories = get_categories();
foreach ($categories as $category) {
	$categoryary[] = array(
		'term_id' => $category->term_id,
		'name' => $category->name,
		'slug' => $category->slug,
		'category-order' => get_term_meta($category->term_id, 'category-order', true),
		'category-state' => get_term_meta($category->term_id, 'category-state', true),
	);
}

$orders = array_column($categoryary, 'category-order');
array_multisort($orders, SORT_ASC, $categoryary);

foreach ($categoryary as $cat) {
	if(empty($cat['category-state'])){
		echo('<h2>'.$cat['name'].'</h2>
		<p><a href="'.get_category_link($cat['term_id']).'">もっと見る</a></p>');
	}
}

独自に追加したカスタムフィールドは「category-order(並び順)」と「category-state(表示・非表示)」
カテゴリーを呼び出す際に必要事項と上記2点を連想配列「$categoryary」にして取得。
「array_multisort」を使用して並び変えたあとにループ処理で取得情報を表示

投稿カテゴリーへのカスタムフィールドの追加方法は下記ページで紹介しています

同一カテゴリーの記事