知らないと困る、「ショートコードを働かせない」方法
≪≪この記事をすべて読むには約 4 分かかります≫≫
WordPressを使い始めて間もなかったので、ショートコードの恐ろしさに気づいていませんでした。ふと、先ほど投稿したショートコードでPHPを実行する記事を見てみたらなんだか怪しいエラーが出ていました。PHPが吐き出すエラーに見られたくない情報が入ってくることは良くありますから、早く気づいて良かったです。
ショートコード
ショートコードというのは、半角のカッコ"[ ]"で囲まれたコードのことで、テーマやプラグインで割り当てた機能を呼び出すために使われます。
以前書いたFont Awesomeの記事中でも、
[icon name="youtube" class="" unprefixed_class=""] [icon name="twitter" class="" unprefixed_class=""] [icon name="reddit" class="" unprefixed_class=""]
というように使っていたのですが、見えるとおりのまま記載すると、
このように変換されてしまっていました。
記事に書かれていれば機能する
記事中にショートコードが存在していれば、他のスタイルシートや、整形プラグインよりも優先されて効果がでます。
先のコードの場合には、
となるはずのコードを、コード表示用のプラグインでコードが見えるようにしていたのですが、それを無視してショートコードが実行されていました。
Font AwesomeのプラグインではHTMLに変換するだけだったのですが、前の記事のように、実行される関数内でPHPが実行された場合にはエラーが出て表示が壊れたり、いろいろ悪さをします。
ショートコードを抑制する
記事内に半角カッコ"["が出てくるだけでショートコードが実行されてしまうのは、結構問題です。実行されないようにエスケープする必要があります。
エスケープするには、
[icon ショートコード]
となっているところを
[[[icon ショートコード]]]
というようにカッコを二重に記載するだけです。
記事を書いているときにはショートコードは実行されないので気づきませんでした。厄介なことにカッコ内に定義済みのショートコードがある場合だけ実行されるようです。これは、失敗してみないと気づかないかもしれませんね。
早く気づいてよかったです。
ディスカッション
コメント一覧
まだ、コメントがありません