[ 解決済 ] カスタムフィールドの画像出力について
[ 解決済 ] カスタムフィールドの画像出力について
-
投稿者投稿
-
2022年6月1日 2:44 PM #65544
久田裕己閲覧者■ WordPress のバージョン
6.0■ テーマ・プラグインは全て最新版で確認してください。
確認しました。■ テーマの種類
Lightning ( G3 )■ テーマのバージョン
14.18.1■ スキンの種類
Origin III■ 関連しそうなプラグインを一つづつ停止して症状が改善するか確認してください。
確認しました。■ 期待する動作
初歩的な質問で申し訳ございません。「Advanced Custom Fields」を使い、カスタムフィールドを作成しました。
投稿詳細ページに呼び出しをしたいです。■ 自分で試した事
こちらの動画を参考にテキストは呼び出しができたのですが、画像が表示されません。
自分なりにコードを調べて書いてみたのがこちらです。—————–
function my_add_bukken_info($post){
// カスタムフィールドの値など独自に表示したい要素
global $post;
$append_html .= ‘<p>’ . esc_html( $post->report_txt ) . ‘</p>’;
$append_html .= the_field( $post->report_img1 );
$append_html .= the_field( $post->report_img2 );
$append_html .= the_field( $post->report_img3 );
$append_html .= ‘<p>’ . esc_html( $post->cabinet_txt ) . ‘</p>’;
$append_html .= ‘<p>’ . esc_html( $post->cabinet_txt2 ) . ‘</p>’;
echo $append_html;
}add_action( ‘lightning_entry_body_apppend’, ‘my_add_bukken_info’ );
———————–
■ 症状が発生するブラウザ
クローム■ 実際の症状
$append_html .= the_field( $post->report_img1 );
$append_html .= the_field( $post->report_img2 );
$append_html .= the_field( $post->report_img3 );の部分に画像を呼び出したいのですができない状態です。
よろしくお願いいたします。2022年6月2日 12:51 AM #65560おそらく
$append_html .= $post->report_img1;
か
$append_html .= the_field( ‘report_img1’ );
のどちらかを使う感じじゃないですかね?
$post->カスタムフィールド名 は、WordPress標準で使える呼び出し方なので、この時点で値が返ってきます。
the_field() は ACF 固有の関数で the_field( ‘フィールド名’ ); のように使うので $post-> は不要です。
2022年6月3日 9:26 AM #65635
久田裕己閲覧者石川様ご回答ありがとうございます。
返信が遅れ大変申し訳ございませんでした。自分なりに再度調べ直し下記の記述で、無事画像出力ができるようになりました。
—————-
function my_add_bukken_info($post){ // カスタムフィールドの値など独自に表示したい要素 global $post; $append_html .= '<p>' . esc_html( $post->report_txt ) . '</p>'; $images = get_field('report_img1'); if($images){echo '<img src="'.$images['url'].'" />';}; $images = get_field('report_img2'); if($images){echo '<img src="'.$images['url'].'" />';}; $images = get_field('report_img3'); if($images){echo '<img src="'.$images['url'].'" />';}; $images = get_field('report_img4'); if($images){echo '<img src="'.$images['url'].'" />';}; $images = get_field('report_img5'); if($images){echo '<img src="'.$images['url'].'" />';}; echo $append_html; }
—————–
重ねての質問で申し訳ございません。こちらの記述ですと画像は無事出力されるのですが、テキスト部分が必ず一番下に移動してしまいます。
カスタムフィールドのテキスト部分を1番目にしても改善が有りませんでした。
記述が間違っているのでしょうか?- この返信は2年、 5ヶ月前に石川@Vektor,Inc.が編集しました。
2022年6月5日 3:36 AM #65687アクションフックではなくフィルターフックなので、変数に入っている中身を書き換えて返すだけが正しい処理です。
途中で echo すると意図しない場所にいきなり表示されるので、処理内で echo を使ってはいけません。
$append_html の中に格納して、return で返してください。2022年6月9日 8:54 AM #65813
久田裕己閲覧者石川様ご回答ありがとうございます。
返信が遅れ大変申し訳ございませんでした。そうなのですね。アクションフックではなくフィルターフック・・・
この2つの違いも曖昧でした。参考動画とても助かります!
もう一度勉強し直して、記述を見直したいと思います。 -
投稿者投稿
- このトピックに返信するにはログインが必要です。