以下のテストが値になるのですが、ここにカスタムフィールドで管理画面から値を入れられるようにしたいのですが、うまくいきません。
うまくいきません…というところを、例えば、「このようにした」⇒「こうなった」という風に書いて頂けるとコメントしやすいと思います。
ghvstさま ご連絡ありがとうございました。
現在、子犬販売サイトを制作しておりまして、ブリーダー(子犬を育てて販売する人)のページ内に、ブリーダーが登録した子犬を一覧したいと思っております。
現在、このような状態で固定の値をテンプレート内に入れておけば表示まではできている状態なんです。
★現状
少し話はそれますが、
ブリーダーページではなく、子犬情報ページでは以下のようなやり方で、ページ下部のブリーダーの表示を実現できたので、ブリーダーページでも同様にやってみたのですが、ブリーダーページのIDが引き継がれてしまい、子犬の情報が表示されませんでした。
★子犬情報ページ
<?php
$post_id = get_field('breeder_id_page'); //数字は記事のIDを入れてください
$post = get_post($post_id, 'OBJECT' , 'raw'); //指定した記事のIDの情報を取得
$post_include =get_template_part('content-archive-coordinatorinfo');
echo $post_include; //出力します
?>
それで、いろいろ調べたのち、最初に投稿させていただいた
<?php
query_posts(
array(・・・・
の形まで持って行けました。
ですが、その後が止まってしまっております。
何分、はじめてWordPressで構築しているもので知識不足を痛感しております。
ほかにも、ご不明な点がありましたらご指示ください。
よろしくお願いいたします。
下記のようにテンプレートを作れば良さそうですね。
- 投稿ページにカスタムフィールドを設けて値を入れておく。
- その投稿ページのテンプレートの中でカスタムフィールドの値を読み取る。
- query_posts のパラメータ ‘value’=>’テスト’ の部分に、読み取ったカスタムフィールドの値を置く。
kawa2425さん、上記の2番目がうまくいかないのでしたら
もしかすると関数 get_post_meta の使い方が問題でしょうか?
ghvst様
ご返信・ご教授ありがとうございました。
いただいたコメントをもとに再度チャレンジしてみます。
結果が出ましたら、またご報告いたします。
ありがとうございました。
ghvst様
またご質問で、恐縮です。申し訳ないです。
以下で ‘value’=>’テスト’ とありますが
テストの部分にカスタムフィールドの値をどうやっていれるのかが、探してみましたが見つかりませんでした。
そもそもこの形で良いのかどうかも判断がつかずにいます。
この形で進めてもいいのでしょうか。
<?php
query_posts(
array(
'meta_query' => array(
array(
'value'=>'テスト'
)
)
)
);
// ループ
if ( have_posts() ) :
while ( have_posts() ) : the_post();
get_template_part('content-archive-kensaku');
endwhile;
else:
endif;
// クエリをリセット
wp_reset_query();
?>
続けてすいません。
以下のような形でもやってみたんですが、該当記事だけでなく
投稿記事がすべて出力される形になってしまいます。
現状
<?php
$args = Array(
'post_type' => 'post', //投稿記事から
'meta_key' => 'breeder_namae', //カスタムフィールド名
);
$pickupitem = new WP_Query($args); //絞り込みの条件で抽出した記事の配列を$pickupitemに代入
if($pickupitem -> have_posts()) :
while ($pickupitem -> have_posts()) : $pickupitem -> the_post();
get_template_part('content-archive-kensaku');
endwhile;
endif;
?>
以下で ‘value’=>’テスト’ とありますが
テストの部分にカスタムフィールドの値をどうやっていれるのか
二つに分けるのがよいと思います。
- カスタムフィールドの値を読んでphpの変数に入れる
- ‘テスト’ の部分を、その変数に置き換える
カスタムフィールドを読む方法は、下記のページを参考になさっては如何でしょう。
カスタムフィールドの使い方 – WordPress Codex 日本語版
「PostMeta関数」の「内部関数」に書かれている、get_post_custom_values
が使えると思います。
関数リファレンス/get_post_custom_values
そもそもこの形で良いのかどうかも判断がつかずにいます。
この形で進めてもいいのでしょうか。
query_posts
を使うのは、お勧めではないそうです。私も最近知ったばかりなのですが。
ブリーダー(子犬を育てて販売する人)のページ内に、ブリーダーが登録した子犬を一覧したい
ブリーダーのページに付けたカスタムフィールドから値を読み、子犬のページを(その値で検索して)表示させたいのですよね。WP_Query
を使ってできると思います。
他には、get_posts
を使ってループを組む方法もあります。
テンプレートタグ/get_posts
上記ページのセクション「カスタムフィールドパラメータ」に載っている例題を少し変形すれば使えるのではないでしょうか。
ghvstさま
詳しいご説明ありがとうございました。
頂いたヒントをもとに再度、試してみます。