
プラグイン「SyntaxHighlighter Evolved」やその他の方法でコードプレビューを埋め込んだ際、よくわからないタイミングで大なり(「>」)が「>;」に変換されてしまうことがある。
せっかくコードを書いたのに、WordPressの余計な機能で勝手にこんな風に置換される。
コード
$info=array(
'time'=>$this->;sToM($media->;getDurationInSeconds()),
'channels'=>;$mediaStreams->;get('channels'),
'sampringlate'=>;$mediaStreams->;get('sample_rate'),
'bitrate'=>;$mediaStreams->;get('bit_rate')/$mediaStreams->get('sample_rate')/$mediaStreams->;get('channels'),
);
'time'=>$this->;sToM($media->;getDurationInSeconds()),
'channels'=>;$mediaStreams->;get('channels'),
'sampringlate'=>;$mediaStreams->;get('sample_rate'),
'bitrate'=>;$mediaStreams->;get('bit_rate')/$mediaStreams->get('sample_rate')/$mediaStreams->;get('channels'),
);
〇すぞ!!!!!!!
解決策(後日更新)
Urvanov Syntax Highlighter というプラグインを使う。
これなら空気読んでいい感じにコードを掲載してくれる。
旧解決策(昔やってた方法)
今は推奨しません。
子テーマのfunctions.phpに下記を追加
[code lang="php"] //記号を勝手にwordpressが変換しないようにするadd_filter('the_content', function($content) {
$content = str_replace('&', null, $content);
$content = str_replace('amp;', null, $content);
$content = str_ireplace('>', '>', $content);
return $content;
});
[/code]
3行目~5行目の
「&amp」
「amp」
「&gt」
「>」
は半角にしてね。
(本サイトはこの処理をすでに加えているので、逆に「&」や「>」を半角で表示できない)
記事を書いている途中では解消されないが、更新や投稿をするとちゃんと大なり(「>」)が表示されているはず!
コードの説明
「&」という文字列があったら消す
「amp;」という文字列があったら消す
「>」という文字列があったら「>」に置換しなおす
という処理。
この関数は、プラグインの翻訳が気に入らないときなどに無理やり書き換えるために使われることが多い。
発生タイミング
Ctrl + Z などのショートカットを使ったり、コードを途中から貼り付けたりするとなぜかこの症状がおこる。
強制的に文字列を置換しなおす処理をfunctions.phpに書くことによって、置換機能をつぶしている。