WP clean excerpt

WordPressのテーマ内で<?php the_excerpt(); ?>を使った時に自動挿入されるpタグを取り除くプラグインです。1KBプラグインならぬ一行プラグインなので、テーマに組み込んだ方がいいと思いますが、プラグインとして使いたいという方はどうぞお使いください。

WP clean excerptを使えばmetaタグ挿入プラグインがなくても抜粋をdescriptionとして表示させることができます。カスタムフィールドを使わずdescriptionを入れたいという方にはおすすめです。

また、カスタマイズで記事内のpタグの自動挿入や連続ハイフンやシングルクォートの自動置換を無効にする方法などを紹介していますので、これらの問題にお悩みの方の参考になれば幸いです。

使い方

1. プラグインを有効にする
ダウンロードしたWP clean excerptをアップロードし有効にします。
2. single.phpのhead要素内かつループ内に<meta name="description" content="<?php the_excerpt(); ?>" />を挿入する
テンプレートタグthe_excerpt()はループ内でしか使えないのでご注意ください。詳しくはテンプレートタグ/the excerpt(WordPress Codex 日本語版)をご覧ください。
3. 抜粋を入力する
抜粋欄
字数制限はありません。ただし、無記入の場合は文頭の数十文字が抜粋されます。

使わなくなった時は無効にして削除してください。データベースは使用していません。

カスタマイズ

記事内のpタグの自動挿入を無効にする

コメントやブロックレベル要素として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'); // 本文の自動置換を無効

を書き加えれば、自動置換を無効にすることができます。

プラグインを使わず抜粋に挿入されるpタグを取り除く(本体)

wp-includes/default-filters.php内の一部をコメントアウトします。ただしWordPressのバージョンが上がる度に修正が必要になるので、面倒な方はプラグイン化した方がいいです。

add_filter('the_excerpt', 'wpautop');
↓
// add_filter('the_excerpt', 'wpautop');

pタグの自動挿入や連続ハイフン・シングルクォートの自動置換の無効化もwp-includes/default-filters.phpでできます。

プラグインを使わず抜粋に挿入されるpタグを取り除く(functions.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
Published: 2009-01-05 Last modified: 2010-08-07