WordPress で 連続したハイフン が勝手に繋がったり違う文字に置換されるのを止めたい

WordPresshaはかなり便利なんですが時々要らない事までやってくれます。

少なくとも自分には欲しくないおせっかいなわけで。

例えばビジュアルモードで更新した記事の自動成形等。

特にプログラム系の記事を書いたりする場合に連続したハイフン(これも他の要因で曲者ですが)繋がって一つになったり(違うコードに置き換わってるんですけどね)

改行が勝手に削除されたり<p>タグ入れられたり。

普通の記事を書いてる分にはあまり問題ないんですが。

とにかくそういう部分の要らないおせっかいを止めさせちゃう方法

先ず結論から先に言いますとそういうちまちました変換を地味にやってくれてるのは

wp-includes/formatting.phpに居る

  • wptexturize
  • convert_chars
  • wpautop

なんて面々なんです。

でこの人たちが見えないところで変換かけてくれるのですが要はこれを止めさせれば良いんですね。

で、止めさせ方は、remove_filter 関数で自動変換を止めさせたい部位に関する指示を自分が使用しているテーマ内のfunctions.phpに追加してあげます。

こんな感じに

   ・
   ・
   ・
   ・
// 自動成形しない
remove_filter('the_content', 'wpautop');

// wptexturizeによる文字列変換をしない
remove_filter('the_title', 'wptexturize');
remove_filter('the_content', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');
remove_filter('comment_text', 'wptexturize');

// convert_charsによる文字列変換をしない
remove_filter('the_title'  , 'convert_chars');
remove_filter('the_content', 'convert_chars');
remove_filter('the_excerpt', 'convert_chars');
   ・
   ・
   ・

先に追加する内容を具体的に書きましたが remove_filterはこういう関数です。

記事 目次

使い方
;
パラメータ

$tag
(文字列) (必須) 除去したい関数が追加されているフィルターフック。
初期値: なし

意味が分かりませんよね(^-^;

代表的なもでは、

  • the_title:タイトル
  • the_content:記事
  • the_excerpt:抜粋
  • comment_text:コメント

$function_to_remove
(コールバック) (必須) 除去したいコールバック関数。

初期値: なし

ここでは、

  • wptexturize
  • convert_chars

ですね。

$priority
(整数) (オプション) 関数の優先順位(関数がフックへ追加されたときに指定された値)。

初期値: 10

普通は指定しなくてもOKです。

話は前後しますが$function_to_removeに指定している関数の機能ですが、それぞれ

wptexturize

convert_chars

として解説されていますのでどの様な変換を担当しているのか確認されると良いかと思います。

WordPressレッスンブック HTML5&CSS準拠
php1

独習PHP 第3版
php1

でわでわ(^^♪

シェアする

  • このエントリーをはてなブックマークに追加

フォローする