• 締切済み
  • 困ってます

WordpressのRSS取得条件

以下のコードに2010年以降のフィードのみ表示させるようにするにはどうすればよいですか? <?php include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed(array('RSSフィード')); if (!is_wp_error( $rss ) ) : $rss->set_cache_duration(1800); $rss->init(); $maxitems = $rss->get_item_quantity(10); $rss_items = $rss->get_items(0, $maxitems); date_default_timezone_set('Asia/Tokyo'); endif; ?> <dl> <?php if ($maxitems == 0) echo '<dt>No items.</dt>'; else foreach ( $rss_items as $item ) : ?> <dt> <?php echo $item->get_feed()->get_title(); ?><br /> <a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a> </dt><?php endforeach; ?></dl>

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数216
  • ありがとう数1

みんなの回答

  • 回答No.1

このコードが動いてるのであれば、 作成日 or 更新日で判定させればよいのでは? ↑こういう意味ではなく?

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • [wordpress]外部RSSを「文字数制限」してリストで取得[php]

    初めまして。 wordpress、php初心者です。 タイトル通り、外部のRSSを自分のサイトで、 リスト表示させようと思っています。 ------------ <h1><?php _e('Headlines from Yahoo ITmedia News'); ?></h1> <?php // Get RSS Feed(s) include_once(ABSPATH . WPINC . '/rss.php'); $rss = fetch_rss('http://headlines.yahoo.co.jp/rss/itmedia_n.xml'); $maxitems = 5; $items = array_slice($rss->items, 0, $maxitems); ?> <ul> <?php if (empty($items)) echo '<li>No items</li>'; else foreach ( $items as $item ) : ?> <li><a href='<?php echo $item['link']; ?>' title='<?php echo $item['title']; ?>'> <?php echo $item['title']; ?> </a></li> <?php endforeach; ?> </ul> ------------ 上記のソースで表示はひとまずできました。 あと、これを文字数制限(たとえば10文字以上は「…」)で表示 としたいのですが、どうしたらいいのでしょうか? ------------ <?php $title= mb_substr($post->post_title,0,10); echo '<h1>'.$title.'…</h1>'; ?> ------------ 上記の「mb_substr(」を組み合わせればできそうなのですが、 理解不足な分、うまくいきません。 誰が、教えてください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPのレイアウトを指定するCSSの書き方

    http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/fetch_feed 上記サイトのPHPを利用したいのですが、フォントや枠を指定するスタイルシートの書き方を教えて欲しいです。 これがPHPの構文です。 <h2><?php _e('Recent news from Some-Other Blog:'); ?></h2> <?php include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed('http://example.com/rss/feed/goes/here'); if (!is_wp_error( $rss ) ) : $maxitems = $rss->get_item_quantity(5); $rss_items = $rss->get_items(0, $maxitems); endif; ?> <ul> <?php if ($maxitems == 0) echo '<li>No items.</li>'; else foreach ( $rss_items as $item ) : ?> <li> <a href='<?php echo $item->get_permalink(); ?>' title='<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>'> <?php echo $item->get_title(); ?></a> </li> <?php endforeach; ?> </ul> スタイルシートで出てきたページの例文を、PHPの構文を挟むように記述してみたりしたのですが、真っ白になって表示できなくなったりしますし、フォント指定と枠指定の組み合わせ方もわかりません。 一からというと申し訳ないですが、どなたか例文を記述いただけると嬉しいです。 サンプルの修正からでしたら、間違えながらも自分がしたいように持っていけると思いますので・・・

    • ベストアンサー
    • PHP
  • PHPで外部ファイルから取り込んだデータを配列に

    外部ファイルから取り込んだデータを、配列に代入したいと考えています。自分で試したのですが、どうしてもうまくいかないので詳しい方、どうかよろしくお願いします。 外部のdatファイルは3項目をカンマ区切りで記述してあり、その3項目の繰り返しになっています。そこで次のスクリプトを実行すると、echo結果は$aの列挙になります。 <?php //ファイル名 $file_name = "ファイルのURL/××.dat"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー"); //ファイルをロックする flock($file, LOCK_SH); //出力 while (!feof($file)){ $string = fgets($file,1000); list($a, $b, $c , $d) = explode(",", $string); $d="$a".","; echo "$d"; } //ロックを開放する flock($file, LOCK_UN); //ファイルを閉じる fclose($file); ?> じつは、この$aの内容が、RSSフィードのURLになっており、次のスクリプトでRSSの更新情報を書き出すのですが、$dの中のカンマ区切りのデータを、次のスクリプトの●●●部分に取り込みたいのですが、どう記述すればよいのかわかりません。 <?php include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed(array( ●●● 'URL1', 'URL2', 'URL3' )); if (!is_wp_error( $rss ) ) : $rss->set_cache_duration(1800); $rss->init(); $maxitems = $rss->get_item_quantity(100); $rss_items = $rss->get_items(0, $maxitems); date_default_timezone_set('Asia/Tokyo'); endif; ?> <!--出力--> <ul style="height: 200px; margin: 10; padding: 0; overflow-y: scroll;"> <?php if ($maxitems == 0) echo '<li style="list-style: none;">No items.</li>>'; else foreach ( $rss_items as $item ) : ?> <li style="list-style: none; margin: 0; padding: 0;"><?php echo $item->get_date("Y-n-j"); ?> <a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a></li> <?php endforeach; ?> </ul> どうか、お知恵をお貸しください、よろしくお願いします。

    • 締切済み
    • PHP
  • PHPで一部サイトからRSS情報を取得できない

    PHPを使用して、他のサイトからRSS情報を取得し、 DBにデータを格納する、というような処理をするバッチを作成しています。 SimplePieという無料のライブラリを使用し、 下記のようなファンクションを作成しました。 /* ================= * * RSS情報を最大5件取得 * =================*/ function get_rss_info($feed_url) { // 戻り値 $rss_list = array(); // RSSデータを取得 $feed = new SimplePie(); $feed -> enable_cache(false); $feed -> set_feed_url($feed_url); $feed -> init(); $feed->handle_content_type(); // 過去記事を最大5記事まで取得 $feedItems = $feed -> get_items(0, 5); foreach($feedItems as $item) { // ※自作クラスです $rss = new RSS(); $rss->rss_id = $item -> get_id(); $rss->rss_title = $item -> get_title(); $rss->published_date = $item -> get_date('Y/m/d H:i:s'); $rss->rss_url = $item -> get_permalink(); $rss->rss_text = $item -> get_description(); array_push($rss_list, $rss); } return $rss_list; } 上記のファンクションで、アメブロなどのRSS情報は取得できますし、 一部WordPressサイトのRSS情報も問題なく取得することが出来ました。 しかし、一部のWordPressサイトでは、上記のファンクションを通しても 1つもRSS情報を取得することが出来ず、 配列も空のままで返却されてしまっております。 Feedlyなどの外部サービスで情報が取得できているので、 私のプログラムが悪いのだとは思っているのですが・・・ 自分なりに調査をしてみたのですが、 全く糸口を掴むことができませんでした。 お知恵を貸していただければと思います。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • YoutubeのRSSの読み込み、表示についての質問

    YoutubeのRSSの読み込み、表示についての質問 過去に似たようなものがありましたがかなり前のものなので新たに質問させていただきます。 現在WordpressMUを元にポータルサイト的なものをPHPの知識が殆ど無い状態で作っています。 機能の一つとして本体のTOPページにYoutubeの特定のタグの検索結果をRSSで読んで表示したいと思っているのですが 参考にさせて頂いたサイトのコードが <?php $rss = fetch_rss('rssをここに入力'); $maxitems = 1; $items = array_slice($rss->items, 0, $maxitems); if (empty($items)) echo 'No items'; else foreach ( $items as $item ) : ?> <a href="<?php echo $item['link']; ?>" title="<?php echo $item['title']; ?>" target="_blank"><?php echo $item['description']; ?></a> <?php endforeach; ?> となっておりまして、検索結果のRSSを入力すると、表示はされるのですが [description]のくくりなので余計な情報が入ってしまいます。 表示したいのはタイトルとサムネイルと時間くらいなので もっと細分化して読み込みたいのですが何かいい方法はございませんでしょうか? PHPが分かる方にとってはあまりに初歩的な質問かと思われますが どうかよろしくお願い致します。

    • ベストアンサー
    • PHP
  • RSSを取得したいのですが

    下記サイトを参考に、以下のコードを埋め込んだのですが、 http://plaza.rakuten.co.jp/kemusiro/diary/200601150000/ 日付が (1970/01/01 00:00:00) と表示された上に文字化けしてしまいます。 MagpieRSSはmagpierss-0.72.tar.gzから必要ファイルを、index.phpの下におきました。 正常に表示させるためには、どう直せばよいでしょうか? <?php require_once('magpierss/rss_fetch.inc'); define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); $count = 5; $length = 60; $url = 'http://api.plaza.rakuten.ne.jp/kemusiro/rss/'; $rss = fetch_rss($url); echo "<ul>"; array_splice($rss->items, $count); foreach ($rss->items as $item) { $href = $item['link']; $title = mb_convert_encoding($item['title'], "SJIS", "auto"); $date = date('Y/m/d H:i:s', parse_w3cdtf($item['dc']['date'])); $description = mb_convert_encoding($item['description'], "SJIS", "auto"); if (mb_strlen($description) > $length) { $description = mb_strcut($description, 0, $length) . "..."; } echo "<li>"; echo "<FONT color=\"#ff8040\">(" . $date . ")</FONT> "; echo "<a href=$href>" . $title . "</a><BR>"; echo $description . "</li>"; } echo "</ul>"; ?>

    • 締切済み
    • PHP
  • RSS 日付の取得方法

    見てくださった方、こんにちは。 php超初心者のkitakaruと申します。 ホームページを作っていて、 RSSを取得して表示させたいのですが、 それが出来ずにほとほと困っています。 htmlやcssは多少分かるのですが、 phpは全くといっていいほど分かりません。 どなたか詳しい方がいらしゃいましたら、 ご教示頂けますでしょうか。 よろしくお願い致します。 呼び出しているxmlの形式はrss2.0です。 http://i-njoy.net/tips/rss.shtml こちらのサイトを参考に 以下のようソースを書きました。 (1)のpubdateというタグの値を引っ張ってこれず そこで行き詰ってしまっています。 ちなみにタイトルなどはきちんと表示されています。 分かる方、どうぞよろしくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://www.xxxxxxxxxxxxx/index.xml?mode=rss'; $rss = fetch_rss($url); $title = $rss->channel['title']; $date1 = htmlspecialchars($item['pubdate']);  //(1)rss 出力日時を取得して 変数data1に代入 $date2 = date("Y.m.d", strtotime($date1));   //(2)表示形式変換 data1を変換したものを変数data2に代入 //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 4); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 4); $url = $item[link]; echo '<li><dl><dt>'.$date1.'</dt><dd><a href="'.$url.'">'.$title.'</a></dd></dl></li>'; //(3)変数data2を出力 } ?>

    • ベストアンサー
    • PHP
  • ワードプレス(WordPress) RSS magpierss 日付

    ワードプレス(WordPress)のRSSを、他のサイトで取得するため にmagpierssを入れてるのですが、日付がうまく取得(表示) できません・・。教えてください・・。 ◆ワードプレス側のRSSは、固定カテゴリーです。 アドレス?feed=rss2&cat=3 ◆magpierss では、ブログタイトルは取得しないので 記事のタイトルと、日時だけ取得したいと想っています。 前略・・ $count = 1; // ↓ブログタイトル↓ // echo "<h2>$title</h2>\n"; //echo "<dl>\n"; // ↓記事6個まで↓ foreach ($rss->items as $item ) { if($count < 6){ $count++; // 記事のタイトル $title = $item['title']; // 表示する文字数を制限する 10文字 $title = mb_strimwidth($title, 0, 50, "...", "UTF-8"); //$title = mb_convert_encoding($title, "UTF-8", "auto");   記事の要約   $desc = $item['description'];  $desc = $item['summary'];   $desc = mb_convert_encoding($desc, "UTF-8", "auto"); // 記事のURL $url = $item['link']; // 記事の投稿日時 2005/09/20/10:30:00形式 $date = $item['dc']['date']; $time = rtrim("$date","\+09:00"); $time = strTr("$time","T-","//"); // 記事の投稿日時 09/20形式 $date2 = substr($item['dc']['date'],5,5); $time2 = strTr("$date2","T-","//"); // 記事の投稿日時 10:30形式 $time3 = date( 'H:i', strtotime( substr( $item['dc']['date'],11,8 ) ) ); // 出力形式選択 echo " <ul> <li> <a href=\"$url \">$title</a>$time</li> </ul>"; } } // 出力形式選択↑ループ ?>

    • ベストアンサー
    • PHP
  • WordpressRSSが状況によって取得できない

    WordpressのRSSが、状況によって取得できません。 まず、状況を説明します。(リンクにならないようにhttpのhは省きました) ttp://sample.com/のコンテンツとしてwordpressでブログを作成してます。 ttp://sample.com/blog/にwordpress全プログラムを格納してます。URLもこの形です。 ttp://sample.com/そのものもいろいろなプログラムと関連してるので、wordpressはttp://sample.com/blog/に格納し、このURLで表示するしかない状況です。 また、ヘッダーはttp://sample.com/と同じものをttp://sample.com/blog/でも読み込んでいるので、 <?php get_header(); ?>ではない方法でrequire_once $_SERVER['DOCUMENT_ROOT']."/header.php";というような感じです。これもこうするしかありません。 そして、wordpressの更新状況をttp://sample.com/に表示したいというのが目的です。 ttp://sample.com/はwordpressと関わりないことになりますので、ウィジェットなどは使えないので、RSSを表示しようと考えました。 表示の方法は、このページのやり方で行おうとしました。 http://blog.promob.jp/fri/2009/05/phprss.html 表示されません。 設定が間違っているのかな?と思って、他のRSSのURLを設定したら表示されたので、設定の間違いではないと思います。 では、<?php get_header(); ?>がない影響などで、ttp://sample.com/blog/?feed=rss2というURLの指定がおかしいのかと考えましたが、wordpressのRSSウィジェットに入力した場合は表示されます。 こういうサービスを使ってみましたが(http://www.moondakota.com/feed/index_u.php)これでもちゃんと表示されます。 なので、RSSのURLもおかしくないのだと思いましたが、見栄えをカスタマイズしたいので、先述した方法でやりたいと思ってます。 また、ttp://sample.com/blog/?feed=rss2に直接アクセスしたら記事が表示されないので、どうもRSSのURLに問題がありそうな気はするのですが、解決方法が見えません。 どなたか解決方法わかりませんでしょうか?

    • 締切済み
    • PHP
  • 自分のHPにRSSを表示させたい

    試しに、h●●p://www.okinawainfo.net/rss10.xmlを表示させたく htdocs内のrss.phpファイルに <dl> <?php $rss = simplexml_load_file("h●●p://www.okinawainfo.net/rss10.xml"); $i = 0; foreach ($rss->channel->item as $item) { if( $i++ == 5 ) { break; } $link = $item->link; $title = $item->title; $date = date('Y.m.d', strtotime($item->pubDate)); $desc =$item->description; echo '<dt>' . $date . '</dt>'; echo '<dd><a href="' . $link . '" target="_blank">' . $title . '</a></dd>'; } ?> </dl> と、打ち込みました。 ですが、エラーが出ます。 エラーは… Object not found! 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 Error 404 localhost 2011/12/09 4:19:28 Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1 ↑と出ます。 何故でしょうか><