WordPressでPjaxの実装後よくあるトラブルの解決方法
WordPressでPjaxを実装した際に、SyntaxHighlighterが動かなくなったり、ソーシャルボタンが表示されなかったりする問題に直面したことはありませんか?
[Pjax実装図]
原因と解決策
Pjaxは画面遷移を行わずにコンテンツを入れ替えるため、DOMが更新された際にJavaScriptが再読み込みされず、プラグインの初期化がトリガーされないことが原因です。
1. SyntaxHighlighterの再読み込み
Pjaxの遷移完了イベントで以下のコードを実行することで解決します。
$(document).on('pjax:end', function() {
SyntaxHighlighter.highlight();
});
2. ソーシャルボタンの再生成
同様に、各ソーシャルボタンの公式スクリプトを呼び出し直す必要があります。特にTwitterやFacebookボタンは、親要素の差し替え後に明示的な再レンダリングが必要です。
[Not Found 2384304_1280]
Pjaxは非常に強力ですが、WordPressのプラグインと併用する場合は「非同期読み込み後のイベントハンドリング」に注意が必要です。