WordPressのカスタマイズをする際、ショートコードのプラグインを作っておくと、テーマのリニューアルやメンテナンスがやりやすいので、最近ではこの方法でやっています。
で、どうしてもテーマファイルの中でショートコードを実行する必要があり do_shotocodeを利用して実装したものの、うまくいかずにハマってしまったことが合ったのでメモ。
目次
シングルクォートとダブルクォートの使い分け
問題はパラメータで渡す値を変数にしていたのですが、その変数に”hoge fuge”と間に半角スペースがはいっていると、最初のhogeしか値が渡らなかったことでした。
当初は、
echo do_shortcode('[show_product name=$productname productcat=$productcat]');
とやっていたのですが、これだと”hoge fuga”が”hoge”となってしまいました。
結果的には下記のようにすることでうまくいきました。
echo do_shortcode("[show_product name='$productname' productcat='$productcat']");
まとめ
変数を変数として渡す方法や、シングルクォートとダブルクォートの違いなど、まだまだその都度ググりながらやっているので失敗しましたが、今回の経験で次回からはもうちょっと早く問題の原因を発見&解決できそうです。