WordPressですでにある ショートコードを削除、作りなおす方法
WordPressにはショートコードという機能があって、これを使うと [ショートコード] このような形で、ショートコードを呼び出すことが出来るのです
例えば定型文を入れたり、もうちょっと複雑なものを入れたり出来ます。
Aという数字を入れたら色んな計算をして数値をはじき出すようにして自動的に計算することが出来るようにしたり、千差万別。
このショートコード、もちろん重複は不可能です、エラーを吐きます。どうしても、使いたいショートコード名があり、すでにそれが使われているケースには、すでにあるショートコードを削除することも出来ます。そして、削除したショートコードを再び作るってことが出来ます。
どういったケースでこんな使い方をするのかと言ったら
WordPressの標準のギャラリー機能を、カスタマイズしたい時とかです。Wordpressの標準のギャラリーは、表面的にはわからないのですが 実際のところ ショートコードが作成されて、それがエディタで挿入されています。ギャラリーのショートコードは [gallery] となってます。
通常のgalleryって使いづらいんですよね、なのでgalleryのショートコードの内容を変更すればいいのですが、ショートコードの中身は WordPressのコアファイルにありますので、コアファイルは手を加えるべきではないところです
WordPressのアップデートで上書きされてしまうし、他にも問題が発生した時に原因の特定を遅らせる結果になるでしょう。
ということで、Wordpressのコアファイルをいじらずに、変更したいわけです
そこで、登場するのがショートコードの削除。Wordpressのコアにあるショートコードを無効にして、新たに再定義してやります。再定義するショートコードは、Wordpressのコアにあるgalleryのショートコードをコピーしてきて、カスタマイズして使ったりします。
こうすることで、Wordpressのビジュアルエディタ等でのギャラリー機能をそのまま、流用出来て 使いやすいまま出力する内容を変化させれます。
WordPressの管理画面での操作の変更が無く使えるのが狙いです。
ショートコードを削除する方法
galleryのショートコードの追加のコードは以下になります
add_shortcode('gallery', 'gallery_shortcode');
galleryというところがショートコード名になりますので、削除するときにはこれを指定します
ショートコードを削除するコード、再定義するコード
remove_shortcode( 'gallery' ); add_shortcode('gallery', 'my_gallery_shortcode');
1行目これで、galleryというショートコードが削除されました
2行目で再び galleryというショートコードを定義しています、ただ関数名を変えて独自の実行内容になるようにしています
これをテーマのfunctions.phpに追加します。
もちろん my_gallery_shortcode の内容も、追加する必要があります。
[gallery] というショートコードが使われた時には gallery_shortcode が呼び出されていましたが、削除と再定義で [gallery] が使われると、my_gallery_shortcode が呼び出されて実行されるようになります。
これでコアファイルをいじることなく、ショートコードの内容を置き換えることが出来ます。
単純に、ショートコードを削除したい ってだけのケースは稀かと思います
今回のように再定義して使うのが前提となるかと思いますので、再定義の例とともに紹介いたしました
COMMENT