WordPressの勝手を許さない!

スポンサーリンク

WordPressの記事の中にJavascriptを埋め込んだりする必要が発生する場合がたまにあります。
WordPressのエディタをテキストモードにして記述するわけですが、テキストエディタでは普通に見えてるコードでも実際に公開すると余計なものが付加されたり、予期せぬものに変換されたりして正常に動作しない場合があります。
通常の文章としてなら、あまり気にならないのですが、Javascriptのコードとしては成り立たなくなってしまいます。

WordPressのエディタで記事更新時における自動変換

その原因の中には、次のようなWordPressが自動で変換してしまうことが多いようです。

WordPressの自動変換
1.改行をbrタグ(</ br>)やpタグ(<p></p>)へ自動変換される場合がある
2.半角ダブルクォーテーションは、全角ダブルクォーテーション(&#8220;や&#8221;)に自動変換
3.半角シングルクォーテーションは、全角ダブルクォーテーション(&#8216;や&#8217;)に自動変換
4.半角ハイフン、マイナス記号2~3の連続は、FIGURE DASH記号(&#8212;)に自動変換
5.半角ハイフン、マイナス記号単独は、EN DASH記号(&#8211;)に自動変換
6.半角ドットの連続が、省略記号(&#8230;)に自動変換
7.半角で数字に挟まれた半角xは、乗算記号(&#215;)に自動変換
その他まだあります。

改行等の自動変換を無効にする

上記1.の改行をbrタグ(<br />)やpタグ(<p></p>)へ自動変換を止める方法を説明します。
記事のどの部分に対して自動変換を無効にするかで、パラメータが変わります。

// 記事のタイトルで改行変換を無効にする
remove_filter ('the_title', 'wpautop');
// 記事の本文で改行変換を無効にする
remove_filter ('the_content', 'wpautop')
// 記事の抜粋で改行変換を無効にする
remove_filter ('the_excerpt', 'wpautop')
// 記事のコメントで改行変換を無効にする
remove_filter ('comment_text', 'wpautop')

これらの関数で、無効にしたいものを
functions.phpに記述またはコピペします。

特殊文字等の自動変換を無効にする

冒頭2以降の特殊文字の自動変換を止める方法を説明します。
この場合も記事のどの部分に対して自動変換を無効にするかで、パラメータが変わります。

// 記事のタイトルで特殊文字変換を無効にする
remove_filter ('the_title', 'wptexturize');
// 記事の本文で特殊文字変換を無効にする
remove_filter ('the_content', 'wptexturize')
// 記事の抜粋で特殊文字変換を無効にする
remove_filter ('the_excerpt', 'wptexturize')
// 記事のコメントで特殊文字変換を無効にする
remove_filter ('comment_text', 'wptexturize')

これらの関数で、無効にしたいものを
functions.phpに記述またはコピペします。

WordPressのエディタ更新時の自動変換を無効にするまとめ

これで、Javascriptなどの記述したコードは合っているのに動作しないという現象が多少は改善されると思います。
ただし、functions.phpに記述しているので、特定の記事だけではなくすべての記事に対してこの自動変換が無効になります。
また、functions.phpを変更するってことは、変更に誤りが有ったりした場合、最悪WordPressが動作しなくなる場合があります。
変更する場合は自己責任に於いて、なおかつ慎重に行ってください。
functions.phpの変更でWordPressが動作しなくなった場合は、
FTPクライアントソフトでサーバーにアクセスして、functions.phpファイルをダウンロードして、変更箇所を修正するか、削除してから修正したfunctions.phpファイルを元の場所にアップロードする必要があります。
ファイルの場所は、
wp-content/themes/有効にしているテーマフォルダ/functions.php
です。
ちなみにCocoonの場合は、子テーマを有効にしてると思うので
wp-content/themes/cocoon-child-master/functions.php
となります。