SWELLで解説記事で使用するショートコードを書く時があります。
[hogehoge]
このように表示したいと思って、記事内でショートコードをそのまま書くと展開されてしまうことがあります。
自サイトのfunctions.phpやテーマでそのショートコードが有効になっていると記事内で展開されてしまいます。
やむなく、全角の[
に置き換えて対処している人もいるかもしれません。
この記事の内容
記事内でショートコードを展開しない方法
ショートコードがテーマに存在する場合
WordPressでは、記事内でショートコードを紹介する時に、カッコを二重にすると、ショートコードが展開されなくなります。
[[hogehoge]]
これはとても便利なので覚えておいて損は無いでしょう。
囲みショートコードの場合も同じように二重カッコにすれば対応できます。
最初と最後を二重にするので、注意しましょう。
[[hogehoge] なんか [/hogehoge]]
ショートコードがテーマに存在しない場合
従来通り、1つのカッコで書きましょう。
[hogehoge]
テーマに存在しないショートコードを二重カッコにしてしまうと、二重カッコがそのまま表示されてしまいます。
番外編:ショートコード内でechoしてはいけない
ショートコードは便利なのですが、いざ自分で書いたコードを実行すると思った結果にならないことがあります。
ショートコードを置いた場所と違う場所にショートコードの出力が表示されてしまうことがあります。
そのような場合は、ショートコード内部でechoしていることが殆どです。
ショートコードでHTML出力したい場合は、returnで返さないと出力タイミングは保証されません。
<?php
add_shortcode('somefunc',function(){
ob_start();
//
echo "AAA";
//
return ob_get_clean();
});
まとめ
この記事の内容は、SWELLの公式サイトには書かれていません。なぜなら、ショートコードを展開しない機能は、SWELLの機能ではなく、Wordpressの機能だからです。
ショートコードを記事内で展開しない方法について、この記事でご紹介しました。
コメント