WordPressで、一部記号文字の自動変換を停止させる方法

あなたはWordPressで投稿すると一定の文字が、勝手に書き換わってしまう経験はないだろうか。(cv.中村義洋氏)

'なんや' → ‘なんや’ ※apostrophe(')の全角化
"かんや" → “なんか” ※quotation(")の全角化
になってしまい、JavaScriptが書けない!

1-1 → 1–1 ※ハイフン(-)のエンダッシュ(–)化
に変換されてHTMLコメントが出来ない!

おわかり…いただけただろうか…(cv.中村義洋氏)
\キャー!/

原因はちゃんと分離されている

/wp-include/formatting.phpにて、htmlspecialchars変換ではなく、配列で対を指定して文字列置換していた。

『wptexturize』機能として、ちゃんと分離されている。
つまり、設定でどうにでもなるのだ!

対応方法

手っ取り早く、軽量で直すには『設定ファイル(wp-config.php)』か『テンプレートファイル(function.php)』を変更する。
アップデート時もめんどくさくないしね!

プラグインもそこかしこにあるので、使うのもアリ。
ただ正直プラグインは、重くなるので増やさない方が良いです。
classもfunctionも何もなく、書くだけだしね。

/wp-config.phpにて

require_once(ABSPATH . 'wp-settings.php');

よりに下記を追記する。

テーマファイル内function.phpを直すのも一般的。
ただテンプレートがアップデートされたりするので、個人的にはオススメしない。
wp-config.phpなら、自分が変えない限りは変わらないもんね!

場所を指定して機能を停止したい場合

// タイトル欄
remove_filter('the_title', 'wptexturize');
// 本文欄
remove_filter('the_content', 'wptexturize');
// コメント欄
remove_filter('comment_text', 'wptexturize');
// 抜粋欄
remove_filter('the_excerpt', 'wptexturize');
ちなみに>p<タグ変換を停止させる場合
// タイトル欄
remove_filter('the_title', 'wpautop');
// 本文欄
remove_filter('the_content', 'wpautop');
// コメント欄
remove_filter('comment_text', 'wpautop');
// 抜粋欄
remove_filter('the_excerpt', 'wpautop');

変換機能自体を停止させたい場合

機能自体を停止させたいならコレ

add_filter( 'run_wptexturize', '__return_false' );

どうしてもプラグイン使いたい

何か理由があるのだろう? なら使うがいいさ!

wp-content/plugins/以下に『wptexturize_stop.php』を作成。
その内容を下記のようにするだけで作れる。

<?php
/*
Plugin Name: stop wptexturize
Plugin URI: https://qooga.jb-jk.net/wp/wptexturize-stop/
Description: Stop wptexturize!
Version: 1.0
Author: QoogaKIKAKU
Author URI: https://qooga.jb-jk.net
*/
/***** ココカラ、上で紹介した内容を設定 *****/
// 下記は場所指定タイプの設定例
remove_filter('the_title', 'wptexturize');
remove_filter('the_content', 'wptexturize');
remove_filter('comment_text','wptexturize');
remove_filter('the_excerpt', 'wptexturize');

あとは管理画面の『プラグイン』から『有効』にするだけ。

でも『wptexturize』機能、じつは使える子!?

『設定ファイル(wp-config.php)』か『テンプレートファイル(function.php)』にて

$wp_cockneyreplace= array(
  'ねこ' => '(=^・^=)',
  'いぬ' => 'U^ェ^U',
);

と書いておくと、どこかで『ねこ』て書いたら『(=^・^=)』に自動的に変換されるようになる。

ショートコードみたいなものである。
上手く使えば、簡易ショートコードみたいで、色々使える。

まぁ、こういうことをする人は、多分ショートコードを使いますよね!

コメント

タイトルとURLをコピーしました