WordPress(ワードプレス)でhtmlからcodeタグを判別しタグ内の特殊文字(<,>,&)を自動変換するfunction.php

WordPress(ワードプレス)でhtmlからcodeタグを判別しタグ内の特殊文字(<,>,&)を自動変換するfunction.php

WordPress(ワードプレス)でhtmlからcodeタグを判別しタグ内の特殊文字(<,>,&)を自動変換するfunction.php

WordPress(ワードプレス)でhtmlからcodeタグを判別しタグ内の特殊文字(<,>,&)を自動変換するfunction.php
最終更新日:2018.10.22

WordPressでソースコードを書くとき、特殊文字を置換するのが大変だったので自動変換するfunction.phpを追加しました。

そのままソースコードを記事に貼り付けるとタグとして実行してしまってコードが表示されないので、それを表示する為にエスケープ処理が必要です。

しかし投稿画面での可読性が落ちますしソースコードの貼り付けに1手間追加され面倒でした。

このfunctionを追加すれば<code>タグで囲まれた範囲の特殊文字(<,>,&)を変換してくれるのでタグをそのままコピペすればOKです!

<code>タグにidclassがついていても大丈夫!使いやすい!

やり方

codeタグ内の<,>,&をエンコードする処理を追加します。
【function.php】一番下に以下を追加!!

コピー


//////////////////////////////////////////////////
//codeタグ内の<,>,&をエンコードする
//////////////////////////////////////////////////
function auto_code_filter($html) {
	
	// codeタグにクラスがある場合もOK
	$html = preg_replace_callback( '/(\<code.*?\>)(.+?)(\<\/code\>)/s', function ($matches) {
		return $matches[1].htmlspecialchars($matches[2], ENT_QUOTES, 'UTF-8', $double_encode = false).$matches[3];
	},  $html );
	
	return $html;
}

add_filter('the_content', 'auto_code_filter');

まとめ

以上です〜簡単です♪
ソースコードをそのまま表示したいなんて、用途は限られていますが楽ちんになるのは嬉しいです。