サポート » プラグイン » RSSImportで外部フィードを古い記事から順に表示させる方法

  • 外部ブログの投稿をプラグインRSSImportで取得し表示させています。
    デフォルトでは、新しい投稿から順に表示されますが、
    日付の古い記事から表示させる方法を探しています。

    ショートコードで表示をさせたいのでできればプラグインでの
    操作方法を探しております。

    プラグインで無理な場合は、その他の方法も検討したいと思います。

    ちなみにfetch_feedで試してみましたが、
    記述は以下です。
    <?php
    include_once(ABSPATH . WPINC . ‘/feed.php’);
    $rss = fetch_feed(‘http://example/category/schedule/feed/?s&order=asc&#8217;); // RSSのURLを指定
    if (!is_wp_error( $rss ) ) :
    $rss->set_cache_duration(1800);
    $maxitems = $rss->get_item_quantity(3); // 表示する記事の最大件数
    $rss_items = $rss->get_items(0, $maxitems);
    endif;
    ?>

    どこかにPHPの記述を増やせばよいのか不明です。

    どなたかお教えいただけますと幸いです。

    よろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • モデレーター Daisuke Takahashi

    (@extendwings)

    コードがおかしくなっていますので、コードを貼るときには入力欄上のCodeボタンを使うか、GistやPastebinを使ってください。

    失礼いたしました。
    コードを再投稿します。

    <?php
    include_once(ABSPATH . WPINC . '/feed.php');
    $rss = fetch_feed('http://example/category/schedule/?s&order=asc'); // RSSのURLを指定
    if (!is_wp_error( $rss ) ) :
    	$rss->set_cache_duration(1800);
    	$maxitems = $rss->get_item_quantity(3); // 表示する記事の最大件数
    	$rss_items = $rss->get_items(0, $maxitems);
    endif;
    ?>
    <ul>
    <?php
    if ($maxitems == 0): echo '<li>表示するものががありません</li>';
    else :
    date_default_timezone_set('Asia/Tokyo');
    foreach ( $rss_items as $item ) : ?>
    <li class="hentry">
    <a href="<?php echo $item->get_permalink(); ?>" rel="bookmark" target="_blank">
    
    <span class="entry-title"><?php echo $item->get_title(); ?></span>
    </a>
    </li>
    <?php endforeach; ?>
    <?php endif; ?>
    </ul>
    モデレーター Daisuke Takahashi

    (@extendwings)

    array_reverse($rss_items)してあげれば、逆順になりませんか?

    お返事ありがとうございます。
    このような記述にすればよいでしょうか?

    <?php
    if ($maxitems == 0): echo '<li>表示するものががありません</li>';
    else :
    array_reverse($rss_items);
    date_default_timezone_set('Asia/Tokyo');
    foreach ( $rss_items as $item ) : ?>
    モデレーター Daisuke Takahashi

    (@extendwings)

    これでフィードの逆順になるかと思いますが、期待したとおりの動作になっていますか?

    すみません、試してみましたが、逆順にはなりませんでした。

    array_reverseは元の配列を変更しないので、

    <?php
    if ($maxitems == 0): echo '<li>表示するものががありません</li>';
    else :
    $rss_items = array_reverse($rss_items);
    date_default_timezone_set('Asia/Tokyo');
    foreach ( $rss_items as $item ) : ?>

    とすべきですね。

    参照: PHP: array_reverse – Manual

    一応 rsort なんてのもありますが、基本的には、array-reverseを使う方が良いかと思います。

    モデレーター Daisuke Takahashi

    (@extendwings)

    あ、$rss_items = array_reverse( $rss_items );にしないとダメです。

    皆様、ありがとうございます。
    逆順に並び変わりました。

    質問させていただいてよかったです。
    ありがとうございました!

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「RSSImportで外部フィードを古い記事から順に表示させる方法」には新たに返信することはできません。