» カスタムタクソノミーでの検索フィルター

カスタムタクソノミーでの検索フィルター

管理画面の記事一覧にある絞込フィルターは「日付」と「カテゴリー」だけです。
しかし、カスタム投稿で作った自前のカスタムタクソノミーはこのカテゴリーの絞込に表示されません。

下記がfunction.phpに追加するカスタムタクソノミー用の絞込フィルターの増設です。

function add_post_taxonomy_restrict_filter() {
global $post_type;
if (‘カスタム投稿名’ == $post_type) {
?>
<select name=”カスタムタクソノミー名”>
<option value=””>全てのエリア</option>
<?php
$terms = get_terms(‘josanlistcat’, ‘orderby=term_group’);

//親タクソノミーの名称を取得して配列を変更
foreach ($terms as $term) {
if ($term->parent > 0) {
$parents = get_term($term->parent, ‘カスタムタクソノミー名’);
$parent = $parents->name . ” “;
$term->name = $parent . ” ” . $term->name;
} else {
$term->name = $term->name;
}
}

//親タクソノミーの名称を含んだ名前でソート
function compareArray($a, $b) {
if ( $a->name < $b->name ) return -1;
if ( $a->name > $b->name ) return 1;
return 0;
}
uasort($terms, “compareArray”);

foreach ($terms as $term) {
//タクソノミーを選んだときにselectedがつくようにする
if ($term->slug === $_REQUEST[‘josanlistcat’]) {
$selected = ” selected”;
} else {
$selected = “”;
}
//親タクソノミーが変わったら区切り線をいれる
if ($term->parent == 0) {
?>
<option>——————–</option>
<?
}
?>
<option value=”<?php echo $term->slug; ?>”<?php echo $selected; ?>><?php echo $term->name; ?></option>
<?php
}
?>
</select>
<?php
}
}

登録タームが親子関係にあれば、セレクトボックス内も2階層で表示されます。

==========================================================
横浜・川崎でのホームページ制作、インターネット関連のご相談はお気軽ご連絡ください。

有限会社テクニカルプロデュース
神奈川県川崎市中原区新丸子町745
044-711-8100
メールでのお問合せはこちら>

ホームへ戻る

お気軽にお問合せください。
お客様のご要望をお聞きし、制作企画とお見積りのご提案いたしますのでご検討ください。
 044-711-8100