ブログのSyntaxHighlighterとWordPressのアップデートをさぼってたので、やってみたらつまずいたさ。
SyntaxHighlighter( ? → 2.0 )
WordPress( 2.7 → 2.7.1 )

 

まずは、SyntaxHighlighterのアップデートから。

ActionScript 3.0のシンタックスを入れてあるので、念のため「shBrushAS3.js」と「syntaxhighlighter.php」をバックアップしといて、プラグインの自動アップデート。

結果、SyntaxHighlighterが2.0となって、プラグインの名前が「SyntaxHighlighter Evolved」に変わった?

Viper007Bond.com » My WordPress Plugins » SyntaxHighlighter Evolved
http://www.viper007bond.com/wordpress-plugins/syntaxhighlighter/

 

で、syntaxhighlighter.phpにActionScriptの設定を書き加えようとしたら、中身が全然変わってる。

他の言語を参考にAS用の設定を書き加えてみたけど、なんか[code language="actionscript"]〜[/code]としてるところで、actionscriptって定義がないよってJavaScriptのアラートがでるようになってしまった。

原因は古いままのAS用のシンタックス定義「shBrushAS3.js」では駄目。で、SyntaxHighlighter 2.0用にアップデートされた「shBrushAS3.js」をダウンロードして入れ直し。

AS3 Syntax Highlighting (with SyntaxHighlighter 2.0)
http://yourpalmark.com/2009/02/17/as3-syntax-highlighting-with-syntaxhighlighter-20/

 

ということで、syntaxhighlighter.phpはこんな感じ。

syntaxhighlighter.phpの60行目あたりに付け足し。「shBrushAS3.js」の適用。

wp_register_script( 'syntaxhighlighter-brush-xml',        plugins_url('/syntaxhighlighter/syntaxhighlighter/scripts/shBrushXml.js'),        array('syntaxhighlighter-core'), $this->agshver );

wp_register_script( 'syntaxhighlighter-brush-xml',        plugins_url('/syntaxhighlighter/syntaxhighlighter/scripts/shBrushXml.js'),        array('syntaxhighlighter-core'), $this->agshver );
wp_register_script( 'syntaxhighlighter-brush-as3',        plugins_url('/syntaxhighlighter/syntaxhighlighter/scripts/shBrushAS3.js'),        array('syntaxhighlighter-core'), $this->agshver );

 

syntaxhighlighter.phpの120行目あたりに付け足し。[code language="actionscript"]なところ。

'html' => 'xml',
'xhtml' => 'xml',

'html' => 'xml',
'xhtml' => 'xml',
'actionscript' => 'as3',
'as' => 'as3',

 

これでAS用を適用した部分はちゃんと表示されるようになったんだけど、[code language="actionscript"]を使ってる過去記事の編集画面で「htmlspecialchars_decode()なんたらかんたら」の警告がでて、まったくテキストの編集が全くできなくなってしまった。

 

じゃあ、WordPressをアップデートしたら直るんかなと2.7.1にしてみた。

そしたら、「htmlspecialchars_decode()なんたらかんたら」の警告は相変わらずでるけど、テキスト編集部分は表示されるようになって、まぁ良いかと思ったけど、調べてみたらmodoki.orgさんとこで解決法を発見。

[WordPress]htmlspecialchars_decode()エラーで投稿できない | modoki.org
http://modoki.org/blog/archives/42

 

WordPressのバグらしく「wp-includes/compat.php」の104行目を

if ( !is_scalar( $string ) ) {

 if ( !is_scalar( $str ) ) {

に書き直せってさ。

 

そしたら、「htmlspecialchars_decode()なんたらかんたら」でなくなったー!。
万事解決。すっきり満足。

 

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks

Related posts