Chinese (Simplified)Chinese (Traditional)EnglishJapaneseKorean

Peanuts Blog[かぎや盛岡べん別館]

コロナ禍は厳しい…その時々の気づきを書き綴ります。55歳過ぎての、定年前のシルバー起業。 このままでは楽しくないと… 横浜市の支援と信用保証、銀行融資を活用して、必要な国家資格などを取得。生業としてこれからの働き方改革を自分自身に適用しました。

WP 「Post Snippets」 HatenaBlog最新RSS/feedの投稿をWordpressへ貼り付ける

はてなBlogの最新の投稿を、Wordpressのサイドバーへ貼り付ける方法です。

すんなりといくはずの設定方法のはずが、エラーにより何度も設定し直す事になり、調べるとレンタルサーバーの設定「WAF」の変更が必要になりました。

完成イメージはこうなります

ショートコードで右端のサイドバーのようにテキストを表示させました。サムネイルは重くなりますから表示させていません。

ショートコードの設定は、お決まりの「外観」→「カスタマイズ」から設定できます。

①ショートコードを貼り付ける準備

プラグインでショートコードをカスタムで作成する「Post Snippets」をインストールします。

②Activationメールが送られてくる

インストールして、標準の有効化を行うと、下記のようなメールが送られてきます。

この指定されたActivationをクリックする必要があります。

Wordpressプラグインページの「有効化」クリックではありません。

必ず処理することです。

③貼り付けるPHPコードサンプル

ここまできたら、設定項目です。

今回貼り付けたソースコード*1は下記のようになります。エラーの原因になりますので日本語は使用しません。4行目のターゲットサイトを変更すればいいことになります。

//WrodPress_feed.php
include_once ABSPATH . WPINC . '/feed.php';
// get site's feed
$feed = fetch_feed('https://snackred.hatenablog.com/rss');
if (is_wp_error($feed)) {
    $maxitems = 0;
} else {
    //5items
    $maxitems = $feed->get_item_quantity(5);
    $items = $feed->get_items(0, $maxitems);
}
?>

<h2><a href="https://snackred.hatenablog.com/">Peanuts Blog [かぎや盛岡べん別館]</a></h2?>

<?php if ($maxitems): // data list ?>
    <ul>
    <?php foreach ($items as $item): ?>
        <li>
            <span class="date"><?php echo $item->get_date('Y.m.d'); ?></span>
            <a href="<?php echo $item->get_permalink(); ?>" target="_blank"><span class="title"><?php echo mb_strimwidth($item->get_title(), 0, 60, '…'); ?></span></a>
        </li>
    <?php endforeach; ?>
    </ul>
<?php else: // no data ?>
    <!-- no data-->
<?php endif; 

設定方法は

  • ショートコード名の設定は、「✔」を必ずクリックする(Enterだけだと変更されない)
  • 「Shortcode」と「PHP Code」を必ず「✔」チェックを入れる
  • 「Save」をクリックして、「Snippet saved」が表示されることを必ず確認する(何も表示されないのであればエラーです。混乱のもとですね)

ここで設定したショートコード名は、[hatenablog_update]です。

④「snippet saved」を表示させるために行うこと

レンタルサーバーの設定が必要になります。筆者の場合は「お名前サーバー」です。

「WAF」の設定を一時的に「OFF」にします。Snippetsが保管されたら、再度「ON」に戻します。

Wordpress設定でショートコードを設置します

ここまで来れば、もう少しです。

下記にあるように、「ショートコード」ブロックを追加します。適宜表題も追加します。

設定方法は、特に記述する必要は無いでしょう。

これで完成です。結構手間がかかりました。

RSS/Feedの更新頻度デフォルト12時間

wp-includes/feed.phpに設定されている更新頻度(キャッシュ保持時間)は、デフォルト12時間です。変更する場合は、1800(30分 )とかに設定し直す必要がありますが、そのままとしています。

詳細は

wp_feed_cache_transient_lifetime | Hook | WordPress Developer Resources

にあります。

wp_feed_cache_transient_lifetime’, 12 * HOUR_IN_SECONDS, $url

例えば、

wp_feed_cache_transient_lifetime’, 1800, $url

1800secとかです。