WordPressのショートコードを変数で指定したいとき

2023/01/11に公開

先日Githubで、WordPressの記事の中で天気予報を表示できるプラグインを公開しました。

hub.com/miracle777/tenki-WordPress-Plugin

このプラグインを作るときに、変数でショートコードの名前を設定しようと試みたときに、はまったことがあります。
ショートコードの名称を変数で指定できないのかなと悩むくらい、色々と試しました。

変数の文字列の文字数の確認

その結果、フォームでショートコードの名前を入力するときに、文字以外の見えないものが入ってしまうことに気が付きました。

これは、WordPressのデータベースに保存されたショートコードの名前の文字数と、連想配列に記録された文字数に差があることに気が付き、見つけました。

もし変数でショートコードの名称を指定するときに上手く行かない時は、変数に記録されている文字列の文字数を点検してみてください。
文字数を使って文字列を取り出すよりも、正規表現を使って使っている文字列のみ取り出す方法を使った方が良いと思います。

ショートコードの名前を変数に読む込みタイミング

データベースに記録したショートコードの名前を読み出すタイミングも、気を付けてください。
WordPressが読み込まれたときに、実行されるように関数を設定すると良いです。

ショートコードとしてJavascriptの引数を渡すとき

ショートコードの関数の中でJavascriptの引数が必要な時は、この関数の中で、グローバル変数として、変数を指定してJavascriptの変数に値が伝わるようにするとよいです。

Discussion