初心者なのですが、ハマってしまいましてズバリご回答いただいた方に
1000P差し上げます(参考になればその他の方にも高ポイント)。
プログラムの一部に下記があり、カテゴリ-の1と2と6を取得しているのですが、
<?php if ( have_posts() ) : query_posts('cat=1,2,6'); ?>
上記の、1,2,6の部分をカスタムフィ-ルドから入力したいのです。
(プラグインの「Advanced custom field」を使用予定です)
つまり、<?php if ( have_posts() ) : query_posts('cat=<?php echo post_custom("Category")?>'); ?>としたいのです。しかし、これは当然動きません。<php ?>の中に更に<php ?>を入れられないですし、そもそもquery_postsにカスタムフィ-ルドの値を表示させることもできません。
代案を探しているのですが見つからず困っております。
「get_post()」か「WP_Query()」を使えば良いらしいということはわかっているのですが、うまく置き換えることができません。
うまくいく方法を教えていただけませんでしょうか。
ちなみに本体のプログラムはグ-グルマップを表示するもので、1,2,6のカテゴリ-に属する店舗情報の住所(lat,lon)を取得し、マ-カ-を一覧表示させています。
ソースの全体が分からないと何とも言えませんが、カスタムフィールドを取得する対象の投稿が $post という変数に入っていた場合にはこのような感じになると思います。
クエリするカテゴリが query_categories というカスタムフィールドに入っているとします。
<?php $categories = get_post_meta( $post->ID, 'query_categories', true); if ( have_posts() ) : query_posts('cat=' . $categories); ?>
エラーコードは出せませんか?
<php ?>の中に更に<php ?>を入れられないですし、っていう疑問が解決しますw
??
ちょっとよくわかりません。
たぶん、私のレベルが低すぎるんだと思います。
ごめんなさい。
ソースの全体が分からないと何とも言えませんが、カスタムフィールドを取得する対象の投稿が $post という変数に入っていた場合にはこのような感じになると思います。
クエリするカテゴリが query_categories というカスタムフィールドに入っているとします。
<?php $categories = get_post_meta( $post->ID, 'query_categories', true); if ( have_posts() ) : query_posts('cat=' . $categories); ?>
カスタムフィールドから取得したカテゴリID を、カンマで分解して get_category でデータを取得するような感じになると思います。
$categories にはカスタムフィールドから取得したカテゴリの指定が入っているとします。
$category_array = explode(',', $categories); foreach ($category_array as $c_id){ $c = get_category($c_id); echo $c->cat_name; }
なるほど、参考になりました!
ありがとうございました。
カスタムフィールドから取得したカテゴリID を、カンマで分解して get_category でデータを取得するような感じになると思います。
2014/10/08 10:05:56$categories にはカスタムフィールドから取得したカテゴリの指定が入っているとします。
なるほど、参考になりました!
2014/10/09 03:15:42ありがとうございました。