WordPressのテーマ内で<?php the_excerpt(); ?>
を使った時に自動挿入されるpタグを取り除くプラグインです。1KBプラグインならぬ一行プラグインなので、テーマに組み込んだ方がいいと思いますが、プラグインとして使いたいという方はどうぞお使いください。
WP clean excerptを使えばmetaタグ挿入プラグインがなくても抜粋をdescriptionとして表示させることができます。カスタムフィールドを使わずdescriptionを入れたいという方にはおすすめです。
また、カスタマイズで記事内のpタグの自動挿入や連続ハイフンやシングルクォートの自動置換を無効にする方法などを紹介していますので、これらの問題にお悩みの方の参考になれば幸いです。
<meta name="description" content="<?php the_excerpt(); ?>" />
を挿入するthe_excerpt()
はループ内でしか使えないのでご注意ください。詳しくはテンプレートタグ/the excerpt(WordPress Codex 日本語版)をご覧ください。使わなくなった時は無効にして削除してください。データベースは使用していません。
コメントやブロックレベル要素としてins・delタグを使うと行単位でpタグが挿入されてしまいます。この問題を解決するには、WP clean excerptの適当な箇所(でもどこでもいいですがよく分からなければremove_filter('the_excerpt', 'wpautop');
の次の行)に、
remove_filter('the_content', 'wpautop'); // 本文に自動挿入されるpタグを無効
を書き加えます。
タイトルや記事で連続ハイフンやシングルクォートを使うと別の文字に置換されてしまいます。WP clean excerptに、
remove_filter('the_excerpt', 'wptexturize'); // 抜粋の自動置換を無効
remove_filter('the_title', 'wptexturize'); // 記事名の自動置換を無効
remove_filter('the_content', 'wptexturize'); // 本文の自動置換を無効
を書き加えれば、自動置換を無効にすることができます。
wp-includes/default-filters.php
内の一部をコメントアウトします。ただしWordPressのバージョンが上がる度に修正が必要になるので、面倒な方はプラグイン化した方がいいです。
add_filter('the_excerpt', 'wpautop');
↓
// add_filter('the_excerpt', 'wpautop');
pタグの自動挿入や連続ハイフン・シングルクォートの自動置換の無効化もwp-includes/default-filters.php
でできます。
ご利用中のテーマのfunctions.php
内に以下のコードを書き加えます。
remove_filter('the_excerpt', 'wpautop');
頻繁にテーマを替える場合はプラグインで、同じテーマを使い続けることが前提であればfunctions.phpに直接書き込んでpタグを無効にする方が便利だと思います。
本文がずらずら表示されるより、記事名と抜粋のみのすっきりした方が好きな方へ。
<dl>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<dt><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></dt>
<dd><?php the_excerpt(); ?></dd>
<?php endwhile; endif; ?>
</dl>
SAKATORI Kihiro
www@nrym.org