- 2009-11-19 (木) 8:00
- WP Plugin Hacks | wordpress
昼間に Twitter で category_description() が不要な<p>要素をつけて出力するのがどうこう、というつぶやきを見たので、除去してみました。(もちろん本人には既にメールで説明済み)
確かに自前でキレイな html を出力しようと思ったら、<p>を勝手につけるのやめて欲しいですよね。
というわけで category_description() をちょっと追ってみたのでメモ。
バージョンは WordPress 2.8.5 です。まだ 2.8.6 にしてない(汗
結論1
function.php とかに
remove_filter('term_description','wpautop');
って書いておけばとりあえず <p> は出力されなくなります。
ただ、term_description フックだと、tag_description() もひっかけてしまいます。。。
現状ではテーマ中に tag_description() を書いてるとか、そもそもタグに説明文つけてるとか、あんまり多くもないと思うので別にかまわない気もするんだけど。
そもそも category_description() にちゃんとフックがあればいいのに、とか。(別関数を直接 return する書き方になっているのでフックはない。はず。)
ちなみにきちんと調べてないけど、 term_description フックは今のところタグとカテゴリしか使ってないっぽいので他は大丈夫みたい。
結論2
どうしても先のやり方に抵抗があるとか、部分的にどうにかしたい、しかもできるだけ何やってるかわかりやすくテーマに書き込んでおきたい、というレアな人には、テーマ中で(もちろんis_category()のチェックした中で)
<?php $a = category_description(); $a = substr($a,3); $a = substr($a,0,-5); echo $a; ?>
てゆー感じにすると、いいかなと。
説明は要らない気もするけど、
category_description() の値を変数 $a につっこんで、
先頭の<p>(これが3バイト)と、
最後の</p>(改行コード込みで後ろから5バイト)を取り除いて
echo してあげると。
こんな面倒なことするくらいなら先の remove_filter 使うほうが断然楽だと思うけどw
結論3
ぐぐったら出てきたネタ。
2と同じようにテンプレート中で、オブジェクトを使って直接値だけ引っ張ってくる方式。
echo $category->category_description; みたいなの。
でももしかしてこれだと、wptexturize とか、convert_chars フックも使われない気がするんだけど、大丈夫なのかな?
いや、もちろん自分で入力したカテゴリの説明文だから、そんなにひどい変換が必要な文字も入れない気はするけれども。
- Newer: [WPPH05]WordPressのRSSなどのフィード取得を制限する
- Older: WordPress 2 から投稿テスト
Comments:0
Trackbacks:1
- Trackback URL for this entry
- http://officel.biz/wordpress/wpph04-category_description-no-p.htm/trackback
- Listed below are links to weblogs that reference
- [WPPH04]category_description の p 要素を出力しないようにするには from Office L
- pingback from category_description の p 要素を出力しないようにするには « Local.Video.Shop.資料室 10-04-09 (金) 21:29
-
[...] http://officel.biz/wordpress/wpph04-category_description-no-p.htm コメント (0) [...]