WordPressでショートコードがそのまま表示されてしまうとき

WordPress個別サポート

投稿や固定ページに入力したショートコードがそのまま表示されてしまうことがあります。

たとえば、次のように[ ]で囲まれたショートコードを入力します。

ショートコードを入力
ショートコードを入力

投稿を表示すると、次のようにショートコードがそのまま表示されます。

ショートコードがそのまま表示されてしまう
ショートコードがそのまま表示されてしまう

【原因1】単純な原因は、ショートコードに対応するコードをfunctions.phpに記述していないことが考えられます。典型的には、functionで定義したショートコードの処理をadd_shortcodeで登録するというコードです。

function gmap($atts) {
    extract(shortcode_atts(array(
        'ad' => "",
    ), $atts));

    $address2 = urlencode($ad);
    $zoom = 15;
    $url = "http://maps.google.co.jp/maps?q={$address2}&z={$zoom}";
    return "<br />【住所】{$ad} <a href=\"{$url}\" target=\"_blank\">[地図]</a>";
}
add_shortcode('map', 'gmap');

この例では、mapというショートコードが使われたときはgmapというfunctionが呼び出されます。これによりショートコードが機能して、住所が地図へのリンクに変換されて表示されます。

ショートコードが機能する
ショートコードが機能する
functionだけを記述してadd_shortcodeを忘れるとショートコードが機能しません。注意してください。

【原因2】これも単純な原因ですが、投稿に入力するショートコードの[ ]は半角です。全角の[ ]を入力するとショートコードは機能しません。

Webで紹介されているショートコードのサンプルでは、便宜上、[ ]が全角で表示されているものがあります。コピーしてそのまま使う場合は注意しましょう。

2013年7月28日WordPressトラブルショートコード