web-dev-qa-db-ja.com

ショートコードにACF付きのHTMLタグを挿入する

私は通常ウェブ上に情報がある可能性が高いので、私はたいてい研究をたくさんすることを公に尋ねる前に言うことから始めましょう - 私はまだ苦しんでいるのです。

Advanced Custom Fieldsプラグインを含むWordpressを使用しています - 簡単なHTMLコードを使用してフロントページに画像を表示させることができました

<img src="[acf field='image' post_id=''. $post_id .'']" />

「image」というカスタムフィールドを作成した場所。できればこのリンクを表示するためのショートコードを作成したいですか?私は以下のような多くの可能性を経験しました。

これも試してみました。

<?php
function my_shortcode() {
    $output = '';
    $output.= '<img src="[acf field='image' post_id=''. $post_id .'']" />';
    return $output;
}

取らなかった…それから私は私が私が網で見つけることができる最後のもののために行った。

    function my_shortcode() {
    ob_start();
    ?> <HTML> <img src="[acf field='image' post_id=''. $post_id .'']" /> <?php
    return ob_get_clean();
}

これは私のウェブサイト上でこのようなものになった - 結果

私は本当にここで私の深さから抜けています...誰かが私を少し手助けしても構わないと思っているなら私は本当にうれしいです!

前もって感謝します!

1
Pr0metheus

あなたはあなたの文字列の中でショートコードを実行するためにdo_shortcode()を使わなければなりません

完全なコードはそのようなはずです

<?php
function my_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'post_id' => '', // Default value.
    ), $atts );

    $output = '[acf field="image" post_id="' . $atts['post_id'] . '"]';
    $output = do_shortcode( $output );
    $output = '<img src="' . $output . '" />';
    return $output;
}

add_shortcode('my_link', 'my_shortcode');

使用法:

[my_link post_id="xxx"]

xxxは要求された投稿のIDです。

1
KAGG Design

enter image description here 

function my_shortcode(){
return '<img src="[acf field='image' post_id=''. $post_id .'']" />';
}
add_shortcode('image','my_shortcode');
0