私のショートコード:
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として処理する方法を教えてください。
答えとして@ Miloのコメントを持つために。あなたのコードは意図したとおりに動作します。ビジュアルエディタでショートコードでもHTMLを「書く」ことは不可能です。ショーコードは他のテキストと違った扱いをしません。
ショートコードでHTMLをフォーマットしたい場合は、通常のビジュアルエディタフォーマットツールを使用するか、テキストエディタに切り替えるだけです。