• 解決済 yuura

    (@yuura)


    Smart Custom Fieldsの「関連(投稿タイプ)」機能を使用して、別に投稿済みの内容をページ下部に表示させようとしています。
    Smart Custom Fieldsの関連の表示のさせ方が見つからなかったので、Advanced Custom Fieldsの表示のさせ方を参考に書き換えてみたのですが、何も表示されずで困っています。

    <?php if( SCF::get('ラベル') ) { ?>
    	<?php
    		$post_object = SCF::get('ラベル');
    		foreach ( $post_object as $object ) { ?>
    		<p>投稿オブジェクト:<a href="<?php echo $object->guid; ?>" target="_blank"><?php echo $object->post_title; ?></a></p>
    	<?php } ?>
    <?php } ?>

    新規ページのカスタムフィールドで、既に投稿済みの内容を引っ張るラベルを設定しますが、このラベルから投稿済みのページのIDを取得して、その中身を表示させる…という予想を立てているのですが…。

    <?php echo wp_get_attachment_url(get_post_meta(固定ページID,"カスタムフィールド名",true));?>

    上記の固定ページIDのところに、ラベルから引っ張ってきたIDを入れることができれば…?と考えたりもしています。

    どうぞよろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    Smart Custom Fieldsの「関連(投稿タイプ)」で関連記事を設定すると、値としては投稿IDが配列で返ってくるようです。

    なので、たとえばですけど

    $relation = SCF::get( 'key_name' );
    foreach ( $relation as $post_id ) {
        echo esc_html( get_the_title( $post_id ) );
    }

    みたいな感じでループを回してあげると、投稿や固定ページのコンテンツが取れます。
    上記はページタイトルを取るだけですが、投稿(固定ページ)のIDが分かるので、wp_get_attachment_urlもget_post_metaも使用できると思います。
    全部検証するのが大変なのでヒントのみとしますが、基本的なところは把握していらっしゃるようなので多分大丈夫だと思います!

    作者です。mypacecreator さんありがとうございます!
    Advanced Custom Fields は返り値を ID かオブジェクトか管理画面で選択できるようになっていますが、Smart Custom Fields では混乱を避けるために常に ID を返すようになっています。これは関連フィールドだけではなく、画像やファイルフィールドも同じです。

    トピック投稿者 yuura

    (@yuura)

    mypacecreatorさん、ありがとうございます。
    Takashi Kitajimaさん、Smart Custom Fieldsにいつも本当にお世話になっています…!

    おかげ様で無事、投稿IDを値として得ることが理解できたので解決いたしました。

    <?php
    $relation = SCF::get( 'ラベル' );
    foreach ( $relation as $post_id ) { ?>
    
    <?php echo get_post_meta($post_id, '引っ張ってくるカスタムフィールドのラベル', true); ?>
    
    <?php } ?>

    解決してみると何故ここで躓いたのか…と自分でも思ってしまいましたが…。
    まだまだ勉強中なので、精進したいと思います。
    ありがとうございました!

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「Smart Custom Fieldsの関連(投稿タイプ)の出力方法について」には新たに返信することはできません。