サポート » 使い方全般 » Recent-posts を外部の index.php に表示したい

  • 解決済 YH

    (@yh)


    お世話になります。
    可能かどうかわからないのですが、Wordpress のウィジェット Recent-posts でサイドバーに表示される内容を、同じサーバの違う階層にある WordPress 外の index.php(index.html)に表示したいと思います。
    index.php に
    <?php
    require(‘http://www.hogehoge.ne.jp/wordpress/?feed=rss2&#8217;);
    ?>
    と記述してみたのですが、うまくいきませんでした。
    Wordpress は使い始めたばかりでまだよくわかっていません。
    php は全く承知していません。
    html, css はとりあえず使えます。
    外部の index.php に Recent-posts が表示可能であればご教示いただければ幸いです。
    よろしくお願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • RSSを読み込んで表示するのが一般的だと思います。
    PHPが使える環境なら、MagpieRSSとか便利です。
    http://magpierss.sourceforge.net/
    日本語の解説も探せばいくらでもありますので、コード書けなくてもコピペで出来ます。

    トピック投稿者 YH

    (@yh)

    ご教示ありがとうございます。
    http://tenderfeel.xsrv.jp/php/233/
    を参考にやってみたのですが、うまくいきません。
    index.php

    <?php
    define(‘MAGPIE_OUTPUT_ENCODING’, ‘UTF-8’);
    require(‘magpierss-0.72/rss_fetch.inc’);
    $rss = fetch_rss(“http://www.hogehoge.ne.jp/wordpress/feed/&#8221;);
    print “

    ";
    print_r($rss);
    print "

    “;
    ?>
    と記述してみたのですが、表示されませんでした。
    それなので、ためしに
    $rss = fetch_rss(“http://www.hogehoge.ne.jp/wordpress/?feed=rss2&#8221;);
    と記述してみたら、よくわからないコードとエントリー内容が羅列されました。
    何がおかしいのか、全くわかりません。
    もし初心者にもわかるページがあれば、教えて頂ければ幸いです。
    よろしくお願いします。

    print_rでデータが表示されるなら、きちんとRSS取得して読めてると思います。
    あとは配列からデータ取得して出力するだけです。
    件名、日付とアドレスを取得して、リスト形式で吐くサンプル書いておきます。

    <?php
    define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
    require('magpierss-0.72/rss_fetch.inc');
    $rss = fetch_rss("http://example.com/feed/");
    
    foreach ($rss->items as $item ) {
    	$title = $item[title];			// 件名取得
    	$url = $item[link];			// リンク先取得
    
    	if($item['dc']['date']){		// 日付取得
    		$date = parse_w3cdtf($item['dc']['date']);
    	}else if($item[pubdate]){
    		$date = strtotime($item[pubdate]);
    	}
    	if($date){
    		$s_date = date("Y.m.d ", $date);
    	}
    
    	echo '<li><a href="'.$url.'">'.$s_date.$title.'</a></li>'."\n";		// リスト形式で出力
    }
    ?>

    トピック投稿者 YH

    (@yh)

    ありがとうございました。
    うまくいきました。サンプルまで書いて頂き大変感謝しております。

    重ねての質問で申し訳ありませんが、今、10件表示されているのですが、この件数を変更することは可能でしょうか?

    重ね重ねご迷惑をおかけしますが、ご教示頂ければ幸いです。

    wordpressの管理画面の表示設定に
    「RSS/Atom フィードで表示する最新の投稿数」というのがあるので、そこを変更すればいいです。

    プログラム的にやるなら、ループの回数を制限してやればOKです。
    上記コードだと配信されてる分全部書き出してしまうので。

    $max=5;  //最大件数
    $i=0;  //カウンター
    foreach ($rss->items as $item ){
    if($i>$max){ break; }  //最大件数越えてたらループを抜ける
    ~略~
    echo '<li><a href="'.$url.'">'.$s_date.$title.'</a></li>'."\n";
    $i++;  //カウントアップ
    }

    トピック投稿者 YH

    (@yh)

    度々ありがとうございます。
    コードを

    <?php
    define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
    require('magpierss-0.72/rss_fetch.inc');
    $rss = fetch_rss("http://example.com/feed/");
    
    $max=5;  //最大件数
    $i=0;  //カウンター
    foreach ($rss->items as $item ){
    if($i>$max){ break; }  //最大件数越えてたらループを抜ける
    
    	$title = $item[title];			// 件名取得
    	$url = $item[link];			// リンク先取得
    
    	if($item['dc']['date']){		// 日付取得
    		$date = parse_w3cdtf($item['dc']['date']);
    	}else if($item[pubdate]){
    		$date = strtotime($item[pubdate]);
    	}
    	if($date){
    		$s_date = date("Y.m.d ", $date);
    	}
    
    echo '<li><a href="'.$url.'">'.$s_date.$title.'</a></li>'."\n";
    $i++;  //カウントアップ
    }
    ?>

    と変えてみたのですが、表示されませんでした。
    挿入する場所が違っているのでしょうか。

    フィードする最新の投稿数を変更してみたら、サイドバーの表示は変わったのですが、index.php(コードを記入したほう)は10件のままでした。

    大変申し訳ありませんが、またご教示頂ければ幸いです。

    if($i>$max){ break; } の{が全角文字でした。
    if($i>$max){ break; } ですね・・・

    失礼しました。

    トピック投稿者 YH

    (@yh)

    ありがとうございます。
    とても助かりました。
    少しは勉強してわかるようになりたいと思います。
    今後ともどうぞよろしくお願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「Recent-posts を外部の index.php に表示したい」には新たに返信することはできません。