川崎市のホームページ制作 ワードプレス構築	 カスタムタクソノミーでの検索フィルター



川崎市のホームページ制作 ワードプレス構築	 カスタムタクソノミーでの検索フィルター

コラム

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

ワードプレス制作の覚え書きとして、自分のために記録しています。
どなたか、ご同業で参考にされる方がいらっしゃいましたらお役に立ててください。

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

下記が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階層で表示されます。

ホームへ戻る

当社へのお問合せ
有限会社 テクニカルプロデュース

- 本社 -
神奈川県 川崎市中原区 小杉町1-533

- 制作オフィス -
神奈川県 横浜市都筑区 茅ケ崎東3-18 お電話でのお問合せ メールでのお問合せ