さんまがおいしい季節だねー(´・ω・`)

WordPressのthe_contentをthe_excerptを変えようとしたら超大変だったでござるorzの巻

WordPress — タグ: — さくら @ 2011/09/03 16:28

前にちょっとだけ WordPress の一覧ページの表示を抜粋形式にしてたことがあって、そん時は more を使っていたんですが、今回 the excerpt を使って抜粋表示に直そうとしたらエラいはまったんで、その辺のことをメモっとこうと思います。

the_content を the_excerpt に変えたら個別ページも抜粋表示になったでござるorzの巻

とりあえず WordPress テーマの中の index.php で the_content を呼び出してる箇所を the_excerpt に変えたらいーんだろ?とか思って適当にいじくってみたら、個別ページ(ブログとかページとか)も含めて WordPress 全部が抜粋表示になっちゃいました、テヘ☆

the_excerpt が適当に記事の内容判断して抜粋に切り替えてくれるのかと思ったんですが、この関数は単に抜粋表示するだけのもので、どのページを抜粋にするかは自分で制御しないといけないみたいです。

twentyeleven テーマとかだと元から the_excerpt が入ってて適当にやってくれるみたいなんですが、今 sakuratan.biz で使ってる barecity テーマの場合はそういう処理が入ってないので自分で設定しないといけないっぽいです。


で、色々試行錯誤したあげく↓みたいな感じでテーマの index.php を修正しました。

if (is_singular()) {
    the_content(__('(more...)'));
} else {
    the_excerpt();
}

is_singular() は個別ページの時に真になります。

the_content の引数 __(‘(more…)’) は前に more を使って抜粋していたときの名残りですのであんま気にしないでください。


twentyeleven とかですとこの辺は↓みたいな感じになってます。

if (is_search()) {
    the_excerpt();
} else {
    the_content(__('(more...)'));
}

is_search() は検索結果表示の時だけ真になりますので、twentyeleven ですと検索時以外は全文表示してます。


WordPress の is_ 関数は wp-includes/query.php で定義されていますので、色々試してみたい方はソース見てください。

excerpt_length フィルタを設定しても抜粋表示文字数が変わらないでござるorzの巻

一覧に表示する抜粋の長さは、excerpt_length フィルタで制御できるみたいなんで、テーマの functions.php を↓みたいに変えて400文字に設定しようとしたら全然表示数が変わりませんでした。

functionn new_excerpt_length($length) {
     return 400;
}
add_filter('excerpt_length', 'new_excerpt_length');

ソース grep して調べた結果、WP Multibyte Patch に excerpt_mblength フィルタというのがあって、excerpt_length > excerpt_mblength になると excerpt_mblength のデフォルト値で切り捨てられているため、設定したフィルタが有効になっていない感じでした。

ちなみに WP Multibyte Patch をインスコした状態の excerpt_length とexcerpt_mblength のデフォルト値は 55 と 110 です。


で、最終的に functions.php は↓のようにしました。

functionn new_excerpt_length($length) {
     return 400;
}
add_filter('excerpt_length', 'new_excerpt_length');

function new_excerpt_mblength($length) {
    return 200;
}
add_filter('excerpt_mblength', 'new_excerpt_mblength');

なお WP Multibyte Patch は独自の設定ファイルがあり、wp-content/plugins/wp-multibyte-patch/wpmp-config-sample.php を wp-contents/wpmp-config.php にコピーして設定を書き込むとそれがデフォルトになるみたいです。

なんか面倒くさそうなので functions.php で直しましたが、そういう方法もあるってことで。


ちなみに今回 the_excerpt に変えたかった理由は、抜粋表示してたときの方が Google からのアクセスが多かったからです。( ゚∀゚)o彡゚SEO!SEO!

実際のところ関係あるのか無いのかよく分かりませんが、5月中頃と比べて10倍ぐらい検索エンジンからの流入が落ちてまして、その対応でサーバ移転したりブログの設定変えたりしてます。3ヵ月後ぐらいには結果が分かると思いますので、その頃にそれっぽい記事書くかもしんないす。

5件のコメント »

  1. Good respond in return of this difficulty with genuine arguments and explaining everything concerning that.

    コメント by Hier — 2015 年 4 月 13 日 @ 20:38
  2. Quality articles is the important to attract the visitors to
    go to see the site, that’s what this website is providing.

    コメント by rechargeable head torch for running — 2015 年 4 月 15 日 @ 00:24
  3. Hi, always i used to check web site posts here in the early hours in the morning, for the reason that i love to learn more and more.

    My weblog movie tube now

    コメント by movie tube now — 2016 年 6 月 6 日 @ 05:08
  4. ӏ ǥot tҺis website from
    mү buddy աҺⲟ shared with me concerning tҺіs web
    page ɑnd noա tһіs time
    I am visiting tҺіs site ɑnd reading νery informative posts aat tһіѕ place.

    Silahkan Cek halaman wweb Kaami demii mendapatkan Info lebih komplit tentang sewa mobil di lombok murah .
    Suwun

    コメント by sewa mobil di lombok murah — 2016 年 6 月 14 日 @ 12:32
  5. I աas recommended tɦis website through my cousin. I am not sսre whefher or not thіs post іs writtеn by him ɑѕ no one eⅼsе
    understand ѕuch targeted aƄout myy pгoblem. Yοu’re wonderful!

    Thank you!

    Jangan lupa untuk Kunjungi sutus Aku buat mendapoat Data lebih lengkap lagi menbgenai pijat panggilan murah .
    Terima Kasih

    コメント by pijat panggilan murah — 2016 年 6 月 28 日 @ 06:51

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2017 さくらたんどっとびーず | powered by WordPress with Barecity