WordpressのEvermoreプラグインを修正して、抜粋を上手くトップページに表示する

2011-12-14  /  WordPressCMS

Wordpressでは、トップページやアーカイブページなど、記事一覧のページがありますが、そのままでは本文が全て表示されてしまいます。一覧ページの件数が多いとページが長くなってしまうので、抜粋を利用して、表示をすっきりさせることができます。

テンプレートを直接編集して抜粋を表示する方法もありますが、Evermoreというプラグインが便利そうだったので試してみました。

参考ページ
トップページやカテゴリを抜粋表示にする方法 – WordPressのプラグイン | Evermoreの使い方 | SEOテンプレート比較

Evermoreのインストールと設定

管理ページからプラグインの追加ができませんでしたので、プラグインページからサイト上のプラグインディレクトリの中にダウンロード&解凍で設置しました。 プラグインのページ:Evermore
$ cd (WordPressの設置フォルダ)/wp-content/plugins
$ wget "http://downloads.wordpress.org/plugin/evermore.2.3.zip"
$ unzip evermore.2.3.zip

インストール後にプラグインを有効にすると、管理メニューに「設定 -> Evermore」が表示されます。こちらのページからプラグインの設定ができるようになります。しかし、どうやら日本語に対応しておらず、文字数の設定だけが有効なようです。

また一覧ページでは、一応表示されるのですが、利用しているタブが全てstripされてしまうようです。

これでは表示の文字が短くなっただけで、見た目はあまり整った感じにはなりません。やはり抜粋をきちんと設定して、それを表示できるようにしたいと思いしたので、プラグインを編集してみました。

Evermoreの修正

修正箇所はevermore.phpのtguy_em_addmoreallという関数です。60行目過ぎにあります。
function tguy_em_addmoreall($posts) {                                           
/* Add a "more" link immediately after reading posts from the database. */
    $count = count($posts);
    for ($i = 0; $i < $count; ++$i) {
        if (empty($posts[$i]->excerpt)) {  // 追加
            // 元からある行
            $posts[$i]->post_content = tguy_em_addmore($posts[$i]->post_content);
        } else {  // 追加
            $posts[$i]->post_content = $posts[$i]->excerpt; // 追加
        }  // 追加
    }
    return $posts;
}

一覧ページの投稿記事に対して、抜粋が設定されていたら、そちらをそのまま表示します。抜粋がなければ、evermoreの元の処理に委ねます。

これで上手く抜粋が表示されるようになりました。

ただ…プラグインを修正するんだったら、テーマ編集した方が楽だよなぁと、自分でも思いました…。