フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援
フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援

WordPress RSS記事を取得

マルチサイトにして親サイトの記事を取得するときはSQLを使っていたけど
RSSを使ったら更新まで時間がすこーしかかるけど便利だったので備忘録。
これなら違うドメインでも取得出来る。

news-list.php
<div class="list-box">
    <?php
    include_once(ABSPATH . WPINC . '/feed.php');
    $rss = fetch_feed(array( //複数サイトを取得したい時
        'https://hogehoge.com/?feed',
        'https://hoge.com/?feed=rss2&cat=1,2' //カテゴリーを指定したい時
    ));
    if (!is_wp_error($rss)) {
        $rss->set_cache_duration(1800);
        $rss->init();
        $maxitems = $rss->get_item_quantity(5); //5つ記事を出力する
        $rss_items = $rss->get_items(0, $maxitems);
        date_default_timezone_set('Asia/Tokyo');
    }
    ?>
    <?php if (!empty($maxitems)) : ?>

    <?php if ($maxitems == 0) {
        echo '<li>RSSデータがありませんでした.</li>';
    } else {
        foreach ($rss_items as $item) :;
    } ?>


    <a href="<?php echo $item->get_permalink(); ?>">
        <div class="list-img"><!--画像を表示-->
            <?php 
            $first_img = '';
            if (preg_match('/<img.+?src=['"]([^'"]+?)['"].*?>/msi', $item->get_content(), $matches)) {
                $first_img = $matches[1];
            } ?>
            <?php if (!empty($first_img)) : ?>
            <img src="<?php echo esc_attr($first_img); ?>" class="news-thumbnail">
            <?php endif;  ?>
        </div>
        <div class="list-text">
            <span class="list-cat"><!--カテゴリーを表示-->
                <?php if ($category = $item->get_category()) {
                echo esc_html($category->get_label());
            }; ?>
            </span>
            <span class="list-date"><!--日付をを表示-->
                <?php echo $item->get_date('Y/m/d');?>
            </span>
            <?php
            $days = 3; //Newを表示させたい期間の日数
            $today = date_i18n('U');
            $entry = $item->get_date('U');
            $kiji = date('U', ($today - $entry)) / 86400;
            if ($days > $kiji) {
                echo '<font color="#ff0000">&nbsp;New!</font>';
            }
            ?>
            <h2>
                <?php echo $item->get_title();  ?><!--記事のタイトルを表示-->
            </h2>
            <span class="list-des"><!--記事を40文字分出力する-->
                <?php echo mb_substr(strip_tags($item->get_description()), 0, 40); ?>・・・</span>
        </div>
    </a>

    <?php endforeach; ?>
    <?php endif; ?>
</div>

htmlとかcssはお好みで変えてください。

[紹介元] WordPressタグが付けられた新着投稿 – Qiita WordPress RSS記事を取得

コメント

記事に戻る

コメントを残す