web-dev-qa-db-ja.com

WordPressのショートコード内に生のHTMLを配置する

私のショートコード:

function fullwidthFunc($atts, $content = null) {
    $atts = shortcode_atts(array(
        "backcolor" => 'transparent',
        "backimgurl" => '',
        "color" => 'black',
        "padding" => '50px 10%'
    ), $atts);
    return '<div class="pr-fullwidth-row pr-row" style="background-color: '.esc_attr($atts['backcolor']).'; background-image: url(\''.esc_attr($atts['backimgurl']).'\'); color: '.esc_attr($atts['color']).'; padding: '.esc_attr($atts['padding']).';">'.$content.'</div>';
}
add_shortcode( 'fullwidth', 'fullwidthFunc' );

プレーンテキスト(つまり[fullwidth]This is a test[/fullwidth])を入力すると、すべてうまくいきます。しかし、HTML(つまり[fullwidth]<h1>This is a test</h1>[/fullwidth])を入力すると、結果はプレーンテキストとして出力され、<h1>タグが表示されます。これ以外は、ショートコード全体がうまく機能します。

HTMLをHTMLとして処理する方法を教えてください。

1
T. Hinton

答えとして@ Miloのコメントを持つために。あなたのコードは意図したとおりに動作します。ビジュアルエディタでショートコードでもHTMLを「書く」ことは不可能です。ショーコードは他のテキストと違った扱いをしません。

ショートコードでHTMLをフォーマットしたい場合は、通常のビジュアルエディタフォーマットツールを使用するか、テキストエディタに切り替えるだけです。

3
Mark Kaplun