データベースを修正しないでショートタグを置換

前記で、「SearchRegexを使って不要なショートタグを削除・置換」の記事をお伝えしましたが、データベース自体を編集したくない場合や、不要と思えるショートタグを復活する可能性がある場合に、残しておくと言う選択もあるかと思います。

functions.phpにて文字置き換え

ここでは、テーマのfunctions.phpにて、文字の置き換えを行う方法をメモしておきます。
(私もつい最近、Cocoonテーマへ変更するまでは利用していました。)

以前にAmazonの商品リンクをショートタグで記載できるWP-tmkm-amazonと言うプラグインを利用していましたので、これを例にとって説明させていただきます。

WP-tmkm-amazonプラグインのショートタグは、[tmkm-amazon]ASINコード[/tmkm-amazon] の記述でした。

Cocoonテーマでは、標準でAmazonのショートタグが搭載されているので、[tmkm-amazon]のショートタグを消して、ASINコードをそのままCocoon用のショートタグに引き継ぎたい。

つまりは、下記のように置き換えると言う意味です

[tmkm-amazon]ASINコード[/tmkm-amazon]

[amazon asin=”ASIN”]

 関数

テーマ内のfunctions.phpに下記のようなコードを追記します。

function replace_text_tmkm($text){
$replace = array(
'[tmkm-amazon]' => 'amazon asin="',
'[/tmkm-amazon]' => '"',
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
}
add_filter('the_content', 'replace_text_tmkm');

説明

replace_text_tmkmの関数名は任意で構いません

$replaceの配列では、’置換前のタグ’ => ‘置換後のタグ’を開始タグと終了タグをそれぞれ記述します。

赤文字で記載している[]は、半角のまま記述するとショートタグが有効になってしまうため、あえて全角で記述してあります。コピペする際には半角へ変更してください。

これを応用すると、データベースを直接編集することなく、データベース内の文字の置き換えが自由に出来るので、覚えておくと良いかもしれません。(ただし、置き換えの作業が入るので、ページの読み込み速度は落ちるかと思います)

注意

functions.phpを編集することによって、細かくカスタマイズ出来たりして便利な分、コードのタイプミスや全角が入ったり、プログラムを間違えたりすると、WordPressの画面が真っ白になるなど、エラーで表示すら出来ないことが多々あります。

必ずfunctions.phpのバックアップをとって作業するなりして、元に戻せる環境で作業を行いましょう!

最後に、今回の関数プログラムは見よう見まねで作成したものですので、ご利用の際は、くれぐれも自己責任で行ってくださいね。(当方では一切責任を負いかねます)