LoginSignup
0

More than 3 years have passed since last update.

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

Posted at

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]が実行されるわけです

参照文献

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/

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0