情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

WordPress:category_description関数の注意点

WordPress (76) WordPressテーマ (7)

カテゴリページにカテゴリの概要(description)を追加するときに使う関数category_descriptionを使うときの注意点と対策を紹介します。

注意点

category_description関数を

<p>category_description()</p>

のようにpタグで囲んで使用したところ、その出力が次のように、pタグが二重になってしまいました

<p><p>カテゴリの説明文</p></p>

※Chromeの「要素を検証」から確認した場合は、自動的にタグが補われて、余計なpタグ(<p></p>)が前後に追加された状態になります。

対策

WordPressのいろいろな部分で自動的にタグが挿入されるのは、関数の出力に特定のフィルタ関数が通されていることに由来します。

今回それを実行しているフィルタはwpautopなので、テンプレートファイルのfunctions.phpに次の一行を追加してそのフィルタを解除すればOKです

remove_filter('term_description','wpautop');

その他のフィルター

「wp-includes/default_filters.php」を見ると標準で設定されているフィルタが分かります。それによると、wpautopをはじめ、テキストを変更するフィルタは以下のように設定されています。

// Format text area for display.
foreach ( array( 'term_description' ) as $filter ) {
	add_filter( $filter, 'wptexturize'      );
	add_filter( $filter, 'convert_chars'    );
	add_filter( $filter, 'wpautop'          );
	add_filter( $filter, 'shortcode_unautop');
}

これらのフィルタも同様に解除可能なので必要に応じて解除してください。

参考

コメント(0)

新しいコメントを投稿