• RSS
[WP]ソースコードをハイライトできるWordPressプラグイン「SyntaxHighlighter Evolved」

SyntaxHighlighter 自体はプラグインを利用せずともWordPressに組み込む事は可能ですが、設置が少々面倒なのでプラグイン化された SyntaxHighlighter Evolved を使うと楽です。
続きを読む

WordPressプラグイン「SyntaxHighlighter Evolved」が動かない場合の原因と解決法 8選

ソースコードをハイライトしてくれるWordPressプラグイン SyntaxHighlighter Evolved は非常に便利なのですが、テーマファイルの作り方によっては上手くソースコードをハイライトしてくれない時がありますので、注意が必要です。

過去にわたし自身がハマった時の解決策も含め、様々なサイトで紹介されている「SyntaxHighlighter Evolved」が動かない場合の原因とその解決法をまとめてみました。

(1)<?php wp_head(); ?> の記述の欠落

テーマファイル header.php の <head> 内に
<?php wp_head(); ?>
の記述があることが前提となります。

これが無いと SyntaxHighlighter Evolved が動きません。

<?php wp_head(); ?> を設置する場所については </head> までの間であればどこでも動くのですが、色々と他のJavascript ファイルを引っ張っている場合は、それらのファイルよりも前に記述してあげた方が良さそうです。



(2)<?php wp_footer(); ?> の記述の欠落

テーマファイルのfooter.php に
<?php wp_footer(); ?>
の記述があることも前提となります。

(1)同様、これも記述が無いと SyntaxHighlighter Evolved が動きません。

<?php wp_footer(); ?> を設置する場所については footer.php の </body> の直前が良いそうです。



(3)ショートコードの記述ミス

SyntaxHighlighter Evolvedで 利用できる [php][html][css]などのショートコードの記述が間違っている、または[/php][/html][/css]などでコードが閉じられていないという原因が考えられます。



(4)<?php the_content(); ?> のカスタマイズによる影響

例えば以下のように
<?php echo mb_substr(strip_tags($post-> post_content),0,200) ; ?>
投稿記事に200 文字で表示制限をかけているような場合に、SyntaxHighlighter Evolved が上手く動いてくれないようです。

ここは、
<?php the_content(); ?>
で正しく記述し直せば問題ないようです。



(5)functions.php 内のコードとの干渉

最近追記した functions.php 内のコードを1 つ1 つ外してみて、干渉していないかどうか確認してみましょう。



(6)他のプラグインファイルとの干渉

プラグインを数多く入れていると、その分だけ干渉する可能性が高くなるかもしれませんので、WordPress 管理画面でプラグインを1 つ1 つ外してみて、干渉していないかどうか確認してみましょう。

某かの影響が出るプラグインとしては
Script Compressor
があるようです。



(7)「Amazon」バナーのソースコードとの干渉

Amazon バナーのソースコードに含まれる<iframe> と干渉して、上手くハイライトされないケースがあるようです。

また、Google Chromeで上手く表示されないとの事例もあります。

一度 <iframe> のコードを外してみて SyntaxHighlighter Evolved が正常に動くかどうか確認してみましょう。



(8)「バリューコマース」のアフィリエイトコードとの干渉

アフィリエイト絡みでもう1 つ。

バリューコマースのアフィリエイトコード
<valuecommerce ptnOid="*******" url="http://www.hoeghoge.com/" />
ですが、これはバリューコマースのサイト認証が終われば外していいのですが、
<?php wp_head(); ?> よりもにアフィリエイトコードの記述があるとうまくハイライトされません。原因は不明です。

不要な場合はコードを除去するか、どうしても残しておきたい場合は、
<?php wp_head(); ?> よりも後にアフィリエイトコードを記述します。


色々調べた結果、現在考えられそうな原因は概ねこんな感じでしょうか。

たまにテーマファイルをいじくると動かなくなったりするので、大きくサイトをイメチェンした場合などは SyntaxHighlighter Evolved が正常に動くかどうかを確認された方が良いかもしれませんね。