WordPressの抜粋表示(excerpt)を以下のように動作させたかったので、自作してみました。
抜粋があれば抜粋表示
moreタグがあれば、それに従う
指定文字数より本文文字数が少なければ、そのまま表示
指定文字数より本文文字数が多ければ抜粋表示
コード
functions.phpにコピペ。
[php]<?php
//WordPress抜粋表…
simplexml_load_fileとは
simplexml_load_fileは、PHP5から利用可能になった関数で、XMLをパースしてオブジェクトに代入します。
今回は、オープンソースのECサイト構築システム「ZenCart」に外部ブログ(WordPress)のRSSを表示させてみました。
設置コード
<?php
$rss = "http://apr20.net/feed/";
$xml = simplexml_load_file($rss);
foreach($xml->channel->item as $itemValue){
//zencartなど、EUCにエンコードする必要がある場合は、出力前にエンコードする
$title = mb_convert_encoding($itemValue->title, 'EUC-JP', 'UTF-8');
echo '<li>'.date('m月d日', strtotime($itemValue->pubDate)).' <a href="'.$itemValue->link.'" target="_blank">'.$title.'</a></li>';
}
?>
上記コード内でコメントがついている行は、ZenCart用にEUCに変換しているだけなので、UTF-8の場合は、エンコードの必要はありません。
また、strtotime関数を使って、RSSのpubDateを「m月d日」の形に変換しています。変換前のpubDateは以下のような形式で出力されています。
[pubDate] => Sun, 05 Feb 2012 06:46:02 +0000
graffiti on the web
この投稿へのコメント
コメントはまだありません。