サポート » 使い方全般 » カスタムポストの本文を、別のカスタムポスト個別ページに表示できない

  • 食料品店の商品紹介サイトを作っています。
    店員がオススメ・お気に入りの自社商品を投稿します。
    通常のブログ投稿と分けたかったので、「商品」と「店員」の二つのカスタム投稿を作り、紐付けています。
    商品個別ページに、その商品を投稿した店員のプロフィールを表示したいです。

    商品(item):
    タイトル(商品名)、本文(商品説明)のほか、価格やサイズなどの情報を入力

    店員(agent):
    タイトル(名前)、本文(自己紹介)のほか、配属店舗名、電話番号、入社年などを入力

    商品A -店員Aが投稿(商品Aの投稿時にメタボックスで店員Aを選択)
    商品B -店員Bが投稿(商品Bの投稿時にメタボックスで店員Bを選択)
    商品C -店員Aが投稿(商品Aの投稿時にメタボックスで店員Aを選択)

    店員名はitem_agentsという変数にしています。

    商品ごとの個別ページに店員の情報を読み込みたいのですが、
    商品Aの個別表示テンプレート内で、

    $the_post_id = get_the_id();
    $item_agent = get_post_meta( $the_post_id, ‘item_agents’, true );

    とした上で、
    get_the_title($item_agent) で店員の名前(タイトル)を、
    get_post_meta( $item_agent, ‘agent_tel’, true ) にて電話番号 は表示できるのですが、

    get_the_content($item_agent)
    としても、店員の自己紹介(本文)が表示されません。商品Aの商品説明(本文)が表示されてしまいます。

    店員名や他のメタ情報は取得できるのに、本文のみ取得できないので、
    基本的なところで間違っているように感じますが、過去の質問などを見てもわかりませんでした。

    ご教示賜れればと思います。
    よろしくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    get_the_content で指定可能なパラメータは、「<!–more–> 以降を読むためのリンクとして表示するテキスト。」と「 <!–more–> 以前の内容を隠すかどうか。 」のみであり、記事IDを指定して、該当する本文の取得を行うことはできません。各テンプレートタグでどのような指定が可能かについては、CODEX等オンラインドキュメントにて、解説されていますので読み込んでみてください。

    本文の表示方法ですが、

    • get_postに店員のID($item_agent)を指定し、記事を取得し、$post に代入する
    • 取得できた記事($post)を引数として、setup_postdataを実行する
    • この状態で、ループ内で利用可能なテンプレートタグが使用できますので、the_content タグにて本文を表示
    • wp_reset_postdata タグで、上書きした $post を復元

    の手順となります。

    トピック投稿者 snbst

    (@snbst)

    jim912さま
    taku-kさま

    ありがとうございます。ご返信遅くなりましてすみません。
    やはりget_postで取得することになるのですね。

    $args = array(‘post_type’ => ‘agents’,’include’ => $item_agent,);
    $user_description = get_posts( $args );
    foreach ( $user_description as $post ) : setup_postdata( $post );
    the_content();
    endforeach;
    wp_reset_postdata

    で$user_description を表示することにしてみます。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタムポストの本文を、別のカスタムポスト個別ページに表示できない」には新たに返信することはできません。