Wordpress でカスタムフィールドなどを使い管理画面を独自カスタムし、チェックボックスを設置して入力させたい場合、チェックボックス内容で絞り込んで表示したい場合の対処方法覚え書き。
独自カスタムした項目で分類した一覧を表示
■大学の分類で一覧表示
これだと管理画面からチェックボックスで入力された項目が動かない。
配列に対応した書き方に変更。
LIKE だと 負荷がすごく、一般的なレンタルサーバーでは動かないので適宜 IN 使う。
■大学の分類で一覧表示
$key = $_REQUEST["key"]
if($key == 1):
$metaValue ="大学";
elseif($key == 2):
$metaValue ="短大";
elseif($key == 3):
$metaValue ="大学院";
elseif($key == 4):
$metaValue ="通信制大学";
elseif($key == 48):
$metaValue ="";
else:
$metaValue ="";
endif;
global $post;
$args = array(
'post_type' => 'page',
'meta_key' => 'role',
'meta_value' => $metaValue,
'posts_per_page' => 100
);
$mypost = new WP_Query($args);
if($mypost -> have_posts()) :
while ($mypost -> have_posts()) : $mypost -> the_post();
get_template_part( 'template-parts/content', 'schoollist' );
?>
これだと管理画面からチェックボックスで入力された項目が動かない。
配列に対応した書き方に変更。
$key = $_REQUEST["key"];
if($key == 1):
$metaValue ='文化・語学・人間';
elseif($key == 2):
$metaValue ='法・政・ビジネス';
elseif($key == 3):
$metaValue ='現代社会';
elseif($key == 4):
$metaValue ='国際';
elseif($key == 5):
$metaValue ='サイエンス(理学)';
elseif($key == 6):
$metaValue ='ハイテク(工学)';
elseif($key == 7):
$metaValue ='食糧・バイオ : 食糧';
elseif($key == 8):
$metaValue ='生命・医療';
elseif($key == 9):
$metaValue ='生活';
elseif($key == 10):
$metaValue ='教育';
elseif($key == 11):
$metaValue ='芸術';
elseif($key == 12):
$metaValue ='スポーツ・健康';
else:
$metaValue ="";
endif;
global $post;
$args = array(
'post_type'=>'page',
'meta_query' => array(
array('key'=>'banch', 'value'=>$metaValue, 'compare'=>'LIKE')
)
);
$category= get_posts($args);
$mypost = new WP_Query($args);
if($mypost -> have_posts()) :
while ($mypost -> have_posts()) : $mypost -> the_post();
get_template_part( 'template-parts/content', 'schoollist' );
?>
LIKE だと 負荷がすごく、一般的なレンタルサーバーでは動かないので適宜 IN 使う。