ブログ(WordPress)の投稿一覧を取得して、別のウェブサイトに表示する方法

ブログの更新情報を自分のウェブサイトで表示できるといいですね。
その方法です。

まず、ブログのRSSフィードから投稿一覧を取得する方法です。

#!/usr/bin/perl

use strict;
use warnings;
use XML::FeedPP;
use Time::Local;

my $url = 'http://my.blog.com/feed/';
my $feed = XML::FeedPP->new($url); #フィードを取得
my $line = "
    \n"; my $counter = 0; foreach($feed->get_item()){ #投稿を取得 $counter++; if($counter > 5){ #最新5件表示します。数はお好みで。 last; } my $date = substr($_->pubDate(), 0, 10); $date =~ s/\-/\./g; #日付の書式を 2017-01-17 から 2017.01.07へ。お好みで。 $line .= "
  • " . $date; $line .= " - "; $line .= "<a href = \"" . $_->link() . "\">"; $line .= $_->title() . "
  • \n"; } $line .= "
\n"; open(BLOG, ">", "./www/mywebsite/blogdata.html"); #このスクリプトを置いてあるところから、ウェブサイトを置いてあるとこまでのパス print BLOG $line; close(BLOG);


次に、自分のページに出力結果を表示する方法です。

<!--#include virtual="/mywebsite/blogdata.html"-->

.htmlなり.shtmlなりで出力結果を読み込めるようにしてください。

正常に動作したらcronに登録します。
crontab -eで。

01 * * * * ./rss_get.pl

Windows環境で文字化けをなくす方法

Windows環境ではこのスクリプト、出力が文字化けします。(Windows 7 / Apache / ActivePerl)多分文字コード関係。
Encode.pmなどを使って修正してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です