複数のカスタムタクソノミーで(カスタム)投稿を絞込む

WordPress3.0で使いやすくなったと言われている、カスタムタクソノミー。
でもCMS的に使うためにはまだ不完全といえるでしょう。

何がダメって、複数のカスタムタクソノミーで絞込みができない(でも次のバージョン3.1では出来る、ってフォーラムの人が言ってました)。

なので次のバージョンまでの息の短い改造になりそうですが、今必要な方&備忘録としてまとめます。

目標:カスタム投稿タイプ「アイテム」の一覧表示を、カスタムタクソノミー「色」「形状」で絞込む

必要なプラグイン

「query-multiple-taxonomies」プラグインの改造(使用バージョンは1.3)

「query-multiple-taxonomies」はスラッグで絞込みを掛けているようなので、そのままだと日本語がつかえませんでしたので、以下のように改造。

プラグインのディレクトリ直下のcore.php110行目あたり
$query[] = wp_tax( $taxname, explode( ',', $value ), 'slug' );
$query[] = wp_tax( $taxname, explode( ',', $value ), 'name' );
に改造する。

WPの管理画面での設定

  • カスタム投稿タイプ「アイテム」を設定(slug:item)
  • カスタムタクソノミー「色」を設定、タームとして「白」「黒」を設定
  • カスタムタクソノミー「形状」を設定、タームとして「丸」「三角」「四角」を設定
  • プラグイン「custom-post-type-archives」の設定
    「URL BASEを空白」、「Enabled Custom Post Type Archives」を「item」にすると、「http://example.com/item/」で「item」の一覧(アーカイブ)にアクセスできます。

テンプレート内の記述例(item.phpのループ直前に記述)

  • カスタムタクソノミー「色」のターム「白」 かつ カスタムタクソノミー「形状」のターム「丸」で絞込み
    query_posts( 'color=白&form=丸' );
  • カスタムタクソノミー「色」のターム「白」 かつ カスタムタクソノミー「形状」のターム「三角」 かつ 「四角」で絞込み
    query_posts( 'color=白&form=三角+四角' );
  • カスタムタクソノミー「色」のターム「白」 かつ カスタムタクソノミー「形状」のターム「三角」 または 「四角」で絞込み
    query_posts( 'color=白&form=三角,四角' );

「http://example.com/item/」で上記の条件にあったカスタム投稿タイプの一覧が出てくるはず。たぶん。

(私の環境では動きましたが、使ってるバージョンやサーバー、使用中のプラグインによっては動作しない場合もあると思われます。各自良く動作検証なさってください。)

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です