似たようなことをやったことあります。
カスタムフィールドでもできますが、カスタム分類(タクソノミー)でやったほうが、階層化(グルメの下にグルメジャンル)とか楽な気がします。アーカイブページ生成されますし。
ちょっと今モバイルからさらっと確認してる程度なので、とりあえず手前味噌で恐縮ですが、自分がやったときの記事紹介します。コメント欄で紹介してる記事も参考になると思います。
http://mypacecreator.net/blog/archives/1807
カスタムタクソノミーってこういうときのためにあると思うので、複数の記事を束ねる用途であればカスタムフィールドより適していると思います。
mypacecreator様
ご教授頂き、まことにありがとうございますm(__)m
とっても分かりやすいページですね!!
記事を読ませて頂き、タクソノミーの理解を深め、実装も成功しました♪
ただ、できればページを検索ではなく、アーカイブとして、
動的に切り替えが出来たらと思うのですが…。
お伝えする情報が不足しており申し訳ございません。
http://tipsbear.com/wordpress-taxonomy-get-terms-listing-in-order-of-parent-child/
http://tipsbear.com/wordpress-dropdown-of-custom-taxonomy/
上記を参考にさせて頂き、親タームにカテゴリ、子タームにグルメジャンルを設定し、
実装もできました。これにラジオボタン等で、デフォルトのカテゴリ機能か、
カスタムフィールドの値を使って、エリアでソート出来ればありがたいのですが、
それはかなりややこしいものなのでしょうか…?
私の記事で紹介した方法で、キーワード検索無しの「カテゴリ×カスタム分類」の絞り込みできますよ。
以前、まさに「エリア(area)」×「カテゴリ」で絞り込む実装をやったことあります。
そのときはこんな感じでやりました。
<form action="<?php echo home_url(); ?>" method="get">
エリアを選択:
<select name="area">
<option value="">すべてのエリア</option>
<?php
$terms = get_terms('area', array(
//ここにお好きなパラメータ
'hide_empty' => 0
));
foreach ($terms as $term):
?>
<option value="<?php echo esc_attr($term->slug); ?>"><?php echo esc_html($term->name); ?></option>
<?php endforeach; ?>
</select>
カテゴリを選択:
<?php wp_dropdown_categories( array(
//ここにお好きなパラメータ
'show_option_all' => 'すべてのカテゴリ'
)); ?>
<input type="submit" value="この内容で検索!" />
</form>
divとかclass適当に付けてきれいにスタイリングしてください!
※wp_dropdown_categoriesはカテゴリーをドロップダウンメニューで表示させるための関数なので、ラジオボタンが良ければたとえば
<?php
$terms = get_terms('area ※または category', array(
//ここにお好きなパラメータ
'hide_empty' => 0
));
foreach ($terms as $term):
?>
<label><input type="radio" name="area" value="<?php echo esc_attr($term->slug); ?" /><?php echo esc_html($term->name); ?></label>
<?php endforeach; ?>
とかでできそうな。
参考:get_terms
http://codex.wordpress.org/Function_Reference/get_terms
http://elearn.jp/wpman/function/get_terms.html
mypacecreator様
ご返信遅れまして申し訳ございません。
お教え頂いた構文で、何とかエリアとカテゴリで
検索させる事に成功いたしました!
ありがとうございましたm(__)m
因みに、検索ボタンを無くして、
・エリアのラジオボタンを押した瞬間
・カテゴリを選択した瞬間
にアーカイブに切り替わるようにする事はできますでしょうか?
検索ボタンを無くして、
・エリアのラジオボタンを押した瞬間
・カテゴリを選択した瞬間
にアーカイブに切り替わるようにする事はできますでしょうか?
うーん、できると思いますが、個人的にはやったことないです。
基本的にはJavaScriptを自分で書いていくことになると思います。
(カテゴリーウィジェットのドロップダウンメニューも、wp_dropdown_categoriesにJSの処理をプラスすることで遷移しています。)
JSは専門外なので詳しくお答えできませんが、こういうところに書いてあることを把握した上でカスタマイズしていくことになるのかなぁ、というヒントだけでご容赦ください。
というか、そもそもリアルタイムで変化させたいならラジオボタンはふさわしくないと思います。(利用者への配慮という意味でです。普通ラジオボタン選択時にリアルタイムで画面が切り替わることを想定している人は少ないのではないでしょうか。)
押したら画面が変わることを期待されてるのは普通のリンクテキストやボタンじゃないでしょうか。それか、ドロップダウン(select要素)でもよいのでは。
mypacecreator様
ご返信ありがとうございます。やはりJSになるのですね。
確かにラジオボタンやテキストよりは、リンクテキストやボタンの方がいいですね!
いえいえヒントを頂けて助かります!勉強させて頂きます(^^)♪
右も左も分かっていない私に、とても親切にして下さってありがとうございましたm(__)m
私も人に教えられるぐらいになれるように精進致します!
一旦解決済みにさせて頂きます。
ありがとうございました。