投稿記事の自動置換処理をカスタマイズしたい
-
WordPressのDefaultの機能で、自動的に投稿記事本文やコメント文を自動置換する機能がありますが。何かと想定外の置換処理を行う事もままあり、それらの処理をUser側でコントロール(カスタマイズ)したいと思っています。
調べた結果、 wp-includes/formatting.php 内にある wptexturize関数が関係している事が分りました。しかし他にも、wp-includes/kses.php 内に、
$allowedtags = array(~);
と言う形でそれらしい記述がありました。これらを必要に応じてコメントアウトすれば良いのかとも思いましたが…出来ればWordPress本体の方は弄りたくありません。とりあえず、
remove_filter('the_title', 'wptexturize'); remove_filter('the_content', 'wptexturize'); remove_filter('the_excerpt', 'wptexturize');
~とテーマ内の function.php に追記する形で自動置換処理を回避させる事が出来る事は分りました。
しかし自分としては自動置換処理を全て回避ではなく、自分好みの自動置換処理を適用させたいと思っています。そこで function.php に、
add_filter('wptexturize', 'wp_filter_post_kses', 10, 1);
~と追記する形でタグ整形のみを行って貰おうと考えましたが…自分が想定していた物とは若干違った結果になっています。自分が希望する自動処理は、
- 自動リンク処理を停止。
- 元々、投稿記事内で許可されてるタグは許可(
<strong>
、<table>
~など)。 - 本文内の「”」などを「‘’」に自動変換するのを停止。
- 許可タグ以外の「<>」や「”」などは実体参照文字へ置換処理。
~以上、4つの事を投稿記事の本文(及びタイトル、抜粋)に対して処理させたいです。
前述の
add_filter('wptexturize', 'wp_filter_post_kses', 10, 1);
追記だと。「”」や「’」のみ実体参照文字へ置換処理されてるみたいですが、「<>」に対しては無反応です。また「–(ハイフン2個)」や「”(シングルクォーテーション2個)」を勝手に意訳?変換してしまいます(「–」や「”」など)。自分としてはちゃんと正しく「&#045;&#045;」とか「&#8217;&#8217;」とかに置換処理して欲しいのです。また、コメント文に対しても同様の処理を行いたいと思っています。ただしコメント文に関しては、問答無用で全てのコードやHTMLタグを無効化(実体参照文字へ置換処理)したいです。リンク等も含めて、全てのタグを置換処理したいです。
コード例や使えそうなプラグインなど、何かアドバイスありましたらお願いします。
>使用環境:
・PHP 5.1.6 (Linux)
・WordPress 3.0.0
・テーマ :wp.Vicuna 2.0.3
- トピック「投稿記事の自動置換処理をカスタマイズしたい」には新たに返信することはできません。