以前にWordPressでwp-includes/rss.phpでRSSフィードを処理する方法を書いた(外部RSSフィードの取得・表示)。WP3.0 からrss.phpは非推奨になったのでwp-includes/class-simplepie.phpを使った処理をメモしておく。
SimplePieはPHPでフィードを扱うためのライブラリ。WordPressでは/wp-includes/class-simplepie.phpで機能が提供されている。class-simplepie.phpを使いアメーバブログのフィードを表示下する。
<?php include_once(ABSPATH . WPINC . '/class-simplepie.php'); $feed = new SimplePie(); $feed->set_feed_url('http://rssblog.ameba.jp/ユーザー名/rss20.xml'); $feed->enable_cache(false); $feed->init(); $items = $feed->get_items(0, 5); // 5件表示 ?> <ul> <?php if (empty($items)) : ?> <li>投稿はありません。</li> <?php else: ?> <?php foreach ( $items as $item ) : ?> <li> <a href="<?php $link = $item->get_link(); echo $link; ?>" title="<?php $title = $item->get_title(); echo $title; ?>"><?php echo $title; ?></a><br /> <?php $description = $item->get_description(); echo strip_tags(mb_substr($description, 0, 60)); ?> </li> <?php endforeach; ?> <?php endif; ?> </ul>
» SimplePie – PukiWiki
» WordPress 3.0 以降で RSS を一覧にする方法 | ウェブル
[…] 2012.03.21WordPress に関するメモ, ウェブサイト全般WordPressブログプラグインアメーバブログの RSS フィードを取得、記事内容を抜粋、PR の削除をする [WordPress]アメーバブログ (アメブロ) の投稿記事の一部を抜粋し、WordPress のページに一覧表示をさせる機会がありましたので、メモとして残しておきます。今回は WordPress 3.0 から非推奨となった rss.php を使用せず、/wp-include/class-simplepie.php を使用して外部 RSS フィードの取得を行うこととし、それに当たって以下のウェブサイトを参考にしました。外部 RSS フィードの取得・表示 2: WordPress | FindxFine -Web 制作に関するメモ-紹介されている内容に加えた処理は、以下の通りです。投稿年月日の取得、表示アメブロの RSS に表示される PR の削除サンプルページはこちらになります。class-simplepie.php を使用したアメーバブログの RSS フィード取得、記事内容の抜粋、PR の削除 [サンプル]プログラマーではないため、冗長な部分があるかと思いますが、ご了承ください。 なお、CSS の指定は削除いたしましたので、適宜、追加をしてください。 以下は、プラグイン Exec-PHP をインストール、記事または固定ページに記述をしています。<?php include_once(ABSPATH . WPINC . '/class-simplepie.php'); $feed = new SimplePie(); $feed->set_feed_url('http://rssblog.ameba.jp/xxxx/rss20.xml'); $feed->enable_cache(false); $feed->init(); $items = $feed->get_items(0, 10); ?> <?php if (empty($items)) : ?> 記事が存在しないか、または不具合が発生している可能性があります。 <?php else: ?> <?php foreach ($items as $item) : ?> <?php $title = $item->get_title(); if (strpbrk($title, 'PR: ')) : ?> <?php echo ""; ?> <?php else: ?> <?php echo $date = $item->get_date('Y.m.d'); ?> <h2><a href="<?php $link = $item->get_link(); echo $link; ?>"><?php echo $title; ?></a></h2> <?php $description = $item->get_description(); echo strip_tags(mb_substr($description, 0, 300)); ?> <a href="<?php $link = $item->get_link(); echo $link; ?>" target="_blank">続きを読む…</a> <?php endif; ?> <?php endforeach; ?> <?php endif; ?>コードの説明ですが、7 行目にある「10」が記事の取得数になります。 ただ、取得数から PR を削除しますので、表示数は PR を差し引いた数になります。この処理は改善をしたいところです (友人に聞きますか…) 13、14 行目ではタイトルに「PR:」を含む RSS フィードの削除、16 行目では日付の取得を行っています。 18 行目にある「300」が記事より抜粋をする文字数 (1 バイト換算) になります。今回の内容を必要とする機会はそれほどないと思いますが、class-simplepie.php を使用することでカンタンに RSS フィードの取得をすることができますね。関連しそうな商品PHP による WordPress カスタマイズブック – 3.x 対応WordPress レッスンブック 3.x 対応 (function(d) {var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true;s.src = '//static.mixi.jp/js/plugins.js#lang=ja';d.getElementsByTagName('head')[0].appendChild(s);})(document);Share on TumblrTweet関連しそうな記事プラグインのインストール (初期設定) [WordPress]再整理、30 のプラグイン 一覧 [WordPress]文字列を一括置換するプラグイン Search Regex [WordPress]プラグインのインストール (Google 関連) [WordPress]ソーシャルサービスのボタンの追加 (Twitter) [WordPress]Earth Hour 2012このごろ読まれている記事INFOBAR A01 と Mac で通信、EasyTether で USB テザリング便利と感じた INFOBAR A01 の通話に関する設定変更点VMware Fusion と VirtualBox で Windows 8 Developer Preview を試す [Mac]INFOBAR A01 専用電力消費対策アプリ Task CleanerAndroid での iCloud メールの設定とエイリアスの利用 [INFOBAR A01]Android の標準ブラウザーと Chrome のブックマークを同期する PhoneMarks [INFOBAR A01]VMware Fusion で Windows 8 Consumer Preview を試す [Mac]将来の地震発生確率が高まる可能性がある、立川断層帯について調べるINFOBAR A01 への機種変更と UI常用アプリケーションの起動を確認する [OS X Lion]最近の記事アメーバブログの RSS フィードを取得、記事内容を抜粋、PR の削除をする [WordPress]2012.03.21発売前のウィルキンソン ジンジャーエールをいただいたので、試す2012.03.15読了した書籍 (13)「ホーダー 捨てられない・片付けられない病」2012.03.11モバイルデバイス用のウェブページ確認ツール Adobe Shadow Labs Release 1 を試す2012.03.08今年もアースアワーの季節がやってきました (Earth Hour 2012)2012.03.05ブログについて主にウェブを中心にクリエーティブにかかわっている 30 代が、いろいろと放りこむ雑記帳の様なものになっています。愛知県生まれ、宮城県経由、東京都在住。一児の父。似顔絵制作、熊猫屋。DeliciousFacebookFlickrTumblrTwitterRSSカテゴリー日記 (14)自然・環境・アウトドア (14)食・料理 (10)書籍・音楽・映画 (32)広告・デザイン (6)カメラ・写真 (11)Mac・iPad・iPhone (31)Android (9)ウェブサイト全般 (6)WordPress に関するメモ (18)東日本大震災 (15)Google マイマップ宮城県亘理郡山元町山寺付近撮影画像 (東日本大震災後・2011.04.09)愛知県豊川市内撮影画像東京都国分寺市内の放射線量測定値0.85 cpm 0.08 ± 0.02 µSv/h 2012.02.22 15:10 〜 15:30 晴れ / 木造住宅 2 階 / 屋内 / 窓際0.65 cpm 0.06 ± 0.02 µSv/h 2012.02.14 4:10 〜 4:30 くもり / 木造住宅 2 階 / 屋内 / 窓際 ポケットガイガー KIT + iPhone 4Adsgoogle_ad_client = "ca-pub-9250538779965704"; /* blog.hakozu.me (300×250, Widget) */ google_ad_slot = "3930488411"; google_ad_width = 300; google_ad_height = 250; コメントお問い合わせプライバシーポリシーサイトマップページの先頭へ戻る© 2010 – 2012 hakozu.me. All rights reserved. CC BY-NC-SA 2.1Powered by WordPress. Blogum by Wpshower. (function(){ var corecss = document.createElement('link'); var themecss = document.createElement('link'); var corecssurl = "http://blog.hakozu.me/wp/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css?ver=3.0.83c"; if ( corecss.setAttribute ) { corecss.setAttribute( "rel", "stylesheet" ); corecss.setAttribute( "type", "text/css" ); corecss.setAttribute( "href", corecssurl ); } else { corecss.rel = "stylesheet"; corecss.href = corecssurl; } document.getElementsByTagName("head")[0].insertBefore( corecss, document.getElementById("syntaxhighlighteranchor") ); var themecssurl = "http://blog.hakozu.me/wp/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeEclipse.css?ver=3.0.83c"; if ( themecss.setAttribute ) { themecss.setAttribute( "rel", "stylesheet" ); themecss.setAttribute( "type", "text/css" ); themecss.setAttribute( "href", themecssurl ); } else { themecss.rel = "stylesheet"; themecss.href = themecssurl; } //document.getElementById("syntaxhighlighteranchor").appendChild(themecss); document.getElementsByTagName("head")[0].insertBefore( themecss, document.getElementById("syntaxhighlighteranchor") ); })(); SyntaxHighlighter.config.strings.expandSource = '+ expand source'; SyntaxHighlighter.config.strings.help = '?'; SyntaxHighlighter.config.strings.alert = 'SyntaxHighlighternn'; SyntaxHighlighter.config.strings.noBrush = 'Can't find brush for: '; SyntaxHighlighter.config.strings.brushNotHtmlScript = 'Brush wasn't configured for html-script option: '; SyntaxHighlighter.defaults['auto-links'] = false; SyntaxHighlighter.defaults['pad-line-numbers'] = true; SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.defaults['wrap-lines'] = false; SyntaxHighlighter.all(); /* */ […]
[…] 、それに当たって以下のウェブサイトを参考にしました。 外部 RSS フィードの取得・表示 2: WordPress | FindxFine -Web 制作に関するメモ- 紹介されている内容に加えた処理は、以下の通りです。 […]
[…] 外部 RSS フィードの取得・表示 2: WordPress | FindxFine -Web 制作に関するメモ- […]
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。