PHP
WordPress
shortcode

WordPressでショートコードのエイリアスを作る

WordPressでプラグインやテーマを乗り換えるとき、手動でShortCodeを置き換えるのは大変です。

機械にやらせることを考えても、Search Regexで置き換えると、なぜかうまくいかないことがあります。


"SearchRegex"

|\[hoge\](.*?)\[\/hoge\]|


[fuga]$1[/fuga]

改行があると、おかしな振る舞いをしてしまいます

てなわけで、考えたのは別のショートコードを呼び出すショートコード、いわばエイリアスを実装すればよいわけです。


コード

子テーマのfunctions.phpに以下のコードを書きました。

function hogeFunc($atts, $content = null ) {

//[hoge title=nanntoka url=kantoka] をデフォルトとして仮定
//argsデフォルト値
extract(shortcode_atts(array("title" => "nanntoka","url" => "kantoka"), $atts));
switch($title){
case "nanntoka":
switch($url){
case "kantoka":
//fuga というshortcodeとして実行
return do_shortcode("[fuga]".$content."[/fuga]");
break;
}
break;
}
}

add_shortcode('hoge', 'hogeFunc');


まとめ

こうすれば [hoge]なんとか[/hoge]と入力しても実際は[fuga]なんとか[/fuga]が実行されるわけです


参照文献

https://www.webopixel.net/wordpress/53.html


Regexについて

https://www.mnet.ne.jp/~nakama/

https://webllica.com/wordpress-plug-in-search-regex/

https://regex101.com

https://nahcew.com/change-thml-tag-wp/