はてなダイアリーとWordPressの「続きを読む」

「続きを読む」を使わないと色々と難しいですよね。
blogのトップページに長文の記事が3つ、4つ並んだだけでうんざりします。
なにより見通しが悪い。


一方、毎日読む人にとっては、「続きを読む」をクリックする手間が増えます。
したがって優れた仕組みとは思えないのですが、長文を書く場合にはやむを得ないかなぁ……と。


そこで「続きを読む」の使い方を確認してみました。


はてなダイアリーの場合

「続きを読む」で区切りたいところで、半角イコール「=」を4つ続けただけの行(行頭や行末に他の文字が来ない)を挿入する。これだけです。


▽見出し毎に「続きを読む」を表示する(続きを読む記法
 (はてなダイアリーのヘルプ
 http://hatenadiary.g.hatena.ne.jp/keyword/%E8%A6%8B%E5%87%BA%E3%81%97%E6%AF%8E%E3%81%AB%E3%80%8C%E7%B6%9A%E3%81%8D%E3%82%92%E8%AA%AD%E3%82%80%E3%80%8D%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%EF%BC%88%E7%B6%9A%E3%81%8D%E3%82%92%E8%AA%AD%E3%82%80%E8%A8%98%E6%B3%95%EF%BC%89


html上では、

<p class="seemore"><a href="/{blogid}/{yyyymmdd}/{articleid}#seemore">続きを読む</a></p>

と表示されます。


RSS2.0上では

<a name="seemore"></a>

と表示されます。


WordPressの場合

まず、「抜粋」を使う方法があります。
ここに記事全体の要約を書いて、デザインを指定しているファイルにthe_excerptというWordPressのテンプレートタグを使っていれば、「続きを読む」と同じことができます。


WordPressで「抜粋」(the_excerpt)を使う(travelogue)
 http://www.travelogue.jp/blog/archives/811.html


……なんかMovableTypeでも同じような感じでしたね(確か)。



次に、コメントでmoreと書く方法があります。
先の方法は、新聞社のサイトなんかだったらいいのかもしれませんが(笑)、いちいち記事の要約を考えるのは正直しんどいです。もちろん、そういうのが向いているサイトもあるのだと思います。しかし、頻繁に日記のように書くblogであればこちらの方が楽でしょう。the_excerptタグ使わないで済むし。


こちらの方法は、本文中に

と書くだけ。
はてなダイアリーの場合とタグの内容が違うだけで方法は似ていますね。


WordPressの「続きを読む(Read More)」(padmacolors)
 http://www.padmacolors.org/entry/20090608/970/


しかしWordPress、ドキュメントの類がなかなかひっかからないなぁと思いました。
けど調べたらちゃんとありますね。
安易にキーワードでGoogle先生へおうかがいをたてないのも大事……かもしれません。


WordPress Codex 日本語版
 http://wpdocs.sourceforge.jp/


はてなダイアリーを元にFeedWordPressWordpressに自動投稿した記事について、「続きを読む」を設定する


意味がわかりにくいですね(^^;


FeedWordPressでWordpressに自動投稿する方法については前回書きました。


はてなダイアリーRSSには、上記のとおり

<a name="seemore"></a>

しか書いてありませんので、はてなダイアリーRSSを元にFeedWordPressで取り込んだ場合、WordPressに自動投稿された記事には「続きを読む」は当然つきません。
そうすると、WordPress上ではトップページに長文の記事が3つ、4つ並ぶ状態が再現……


どうすればいいでしょうか。
いくつか方法を考えてみました。


1.FeedWordPressで取り込む場合に、変換
→そういう類のオプションはない(これを確認するために一つ一つチェックした過程でできた派生記事が前回の記事です)。
プラグインを改造することもできるでしょうけど、プラグインのアップデートができなくなる



2.本文を一定の文字数で抜粋して、「抜粋」(概要)として扱う


▽Worpdressの概要の文字数を日本語でカウントする方法(delab)
 http://de-lab.com/article/wordpress_excerpt/


→この方法は優れていると思うけど、せっかくはてなダイアリーで「続きを読む」の箇所を指定しているのだからこれを生かしたい



3.はてなダイアリーで投稿する際にハイフン4文字とともに、<!--more-->も追記する


はてなダイアリーがhtmlタグをそのままスルーするんじゃないかと期待を込めて試してみましたが、駄目でした。


なぜならコメントがはてなダイアリー下書き記法に用いられているためです。
下書き記法をした場合、はてなダイアリーのDB上には残るもののhtmlやrssとしては出力されないんですね
(これはこれでうまくできていると思います)


下書き記法を使う(下書き記法)(はてなダイアリーのヘルプ
 http://hatenadiary.g.hatena.ne.jp/keyword/%E4%B8%8B%E6%9B%B8%E3%81%8D%E8%A8%98%E6%B3%95%E3%82%92%E4%BD%BF%E3%81%86%EF%BC%88%E4%B8%8B%E6%9B%B8%E3%81%8D%E8%A8%98%E6%B3%95%EF%BC%89


4.RSSをに置換する

RSSをに置換して、置換後の結果をFeedWordPressで読むように設定する。


これでできるかなぁ?と疑問に思い、RSSを手打ちで置き換えて、FeedWordPressに読ませてみたところ、うまくいきました。


そこで、置換する部分をphpで書いて、これをFeedWordPressで呼ぶことにします。
置換する部分のphpはこれだけ。

<?php
$search ='<a name="seemore"></a>';
$replace ='<!--more-->';
$rss = file_get_contents("http://d.hatena.ne.jp/mitaina/rss2");
$rss = str_replace($search,$replace,$rss);
echo $rss;
?>


正規表現は不要なので、preg_replaceではなく、str_replaceを使うという1ヶ月前の学習の成果が生きています(笑)