WordPressで特定の文字が自動変換されるのを防ぐためfunctions.phpに記述。

2015年04月21日 正午の月齢:2.7  月名:三日月  潮汐:中潮 月齢:2.7[三日月] 潮汐:中潮 | 3年前 | 旧暦:2015年03月03日 | 大安
WordPress | コメントはありません

この記事を読むのに必要な時間の目安: 1分ぐらい

以前からformatting.phpをいじったりして変換防止(たとえばダブルクォーテーションとか)を仕込んではいたのですが、更新のたびに書き換えるのはウンザリなので、最近はできるかぎりfunctions.phpに書くようにしています。

で、このたびWordPress4.x系に更新するついでに、おせっかいな文字変換を無効化する記述をfunctions.phpに書くことにしました。書いたのは、

remove_filter('the_content', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');
remove_filter('the_title', 'wptexturize');

これで意のままに表現ができるようになりましたー。

関係あるかも知れない記事

前の記事・次の記事

前の記事
<<
次の記事
>>

この記事のトラックバックURL

http://susu.cc/2015/04/wordpressnonconvert.html/trackback

WordPressを3.9.2にしてみた。

2014年08月16日 正午の月齢:20.5  月名:二十日余の月  潮汐:中潮 月齢:20.5[二十日余の月] 潮汐:中潮 | 3年前 | 旧暦:2014年07月21日 | 先負
WordPress | コメントはありません

この記事を読むのに必要な時間の目安: 2分ぐらい

WordPress3.8をどうしても使えない理由で敬遠していた3.8以降のバージョンですが、そろそろ潮時だと思って更新しました。

いつものようにformatting.phpでお節介な変換機能を殺します。

// regular expressions
//$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl); //変換殺し

半角全角の変換もいつもどおりに。

// Replace each & with &#038; unless it already looks like an entity.
$curl = preg_replace('/&([^#])(?![a-zA-Z1-4]{1,8};)/', '&#038;$1', $curl);
$curl = mb_convert_kana($curl,"asKV"); //全角英数字と半角カナを排除

ピリオド3連のかわりに中黒3連を3点リーダに変換するようにして、完成。

ウェブフォントが正しく表示されない件については、「Firefoxで、ウェブフォントの表示と「Webページが指定したフォントを優先」しないことを両立させる。」において解決済み。

これでようやく人並みになりましたー。

関係あるかも知れない記事

前の記事・次の記事

前の記事
<<
次の記事
>>

この記事のトラックバックURL

http://susu.cc/2014/08/wordpress392.html/trackback

WordPressの投稿に「この記事は○年前の記事」かを表示させてみた。

2014年05月29日 正午の月齢:0.7  月名:新月  潮汐:大潮 月齢:0.7[新月] 潮汐:大潮 | 3年前 | 旧暦:2014年05月01日 | 大安
WordPress | コメントはありません

この記事を読むのに必要な時間の目安: 3分ぐらい

アクセスログを眺めていると、結構2008年ごろに書いた記事の閲覧が多くて、見ていただいて大変ありがたいのですけど情報が陳腐化している場合がしばしばあります。それを理解してくれていればいいのですが、中には「チクショー、だまされた!!」なんて思う人がいるかも知れないしいないかも知れない。巷にはブログのクセに投稿日が表示されていないことが多々あって、自分自身「何だよコレ、いつの情報だよっ!!(怒)」となってしまいがち。そんなチクショーリスク回避のために古い記事に対して警告が出るようにしようと思ったわけです。

もともと当サイトは投稿日・月齢・潮汐の右に、どれくらい前に投稿したのか表示しています(さらに旧暦・六曜も表示していて無敵モード)。今回さらに警告を出すことで、自己満足度を高めることにしました。参考にしたのは「[作ってみた] 「この記事は○年前の記事です」と表示警告してくれるwordpressプラグイン」。これを元に、プラグインとしてではなく、functions.phpに記述してみましたー。作者自身「正直、functions.phpに書けば済む内容なんですが…」って言ってるし。

functions.phpに追記したのはこんな感じ。

function show_old_alert($content) {
if(!is_single($post)) return $content;

$diff = strtotime(date("Ymd")) - strtotime(get_the_date("Ymd"));
$diff = $diff / 60 / 60 / 24;
if($diff > 365){
$diff = floor($diff / 365);
return "<p class=\"oldalert\">この記事は".$diff."年以上前のものです。情報が古い場合があります。</p>".$content;
}else{
return $content;
}
}
add_action( 'the_content', 'show_old_alert' );

P要素として、クラスを付けています。あとはCSSで化粧直し。

.oldalert {
color: #ff0099;
margin-bottom: 10px;
text-align: center;
}

最初、クラスを付けるときに「class="oldalert"」と書いてハマりました。エスケープを忘れずに「class=\"oldalert\"」と書きましょうネ。

あとちょっと気になる点ですが、

old-alert

潮汐の横には「4年前」となっていて、今回追加した警告は「3年以上前」となっています。どちらも間違っているわけではないのですが、日数の数え方が違うとこんな感じになるっていうことで。

関係あるかも知れない記事

前の記事・次の記事

前の記事
<<
次の記事
>>

この記事のトラックバックURL

http://susu.cc/2014/05/wordpress_old-alert.html/trackback