WordPressでカテゴリやタグと同様に「カスタムフィールド」で記事を絞り込む方法

カテゴリやタグと同様に「カスタムフィールド」で記事を絞り込んで一覧表示させる方法です。

フォーラムで取り上げられていた カスタムフィールドをタグと同じようにリンクさせたい を元にしたカスタマイズさせていただきました。

例えばカスタムフィールド名(key)が「季節」、値(value)が「冬」のような設定がされている場合、URLの後ろに「?key=季節&value=冬」とパラメータを渡してアクセスするイメージです。

(1)meta.php を用意

テーマフォルダに、新たに meta.php を用意します。


(2)meta.php 内に以下を記述

meta.php を開いて、以下のような処理を施します。
[php] <?php
query_posts(‘posts_per_page=-1&meta_key=’ . $_GET[‘key’] . ‘&meta_value=’ . $_GET[‘value’]);
if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

ループ処理

<?php endwhile; ?>
<?php else : ?>
<?php endif;
wp_reset_query();
?>
[/php]

フォーラムでは「Custom Field Gui Utility」プラグインでカスタムフィールドを管理しているケースでしたが、プラグインを使わずに、投稿記事画面から直接設定したカスタムフィールドでも使えます。

また、カスタムフィールドの値(value)が複数有る場合の出力方法も掲載されていますが、今回は key : value = 1:1 での出力がやりたかったので、これでひとまずいけそうな感じです。


(3)meta.php へアクセス

カスタムフィールド名(key)が「季節」、値(value)が「冬」の場合、以下のようなURL になります。

※パーマリンク構造によっては、http://sample.com/meta/?key=季節&value= のようになります。
http://sample.com/meta?key=季節&value=

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください