いくつかの異なるブログに書き込みをしている友人がいて、あまり人気のないブログの記事を RSS フィードを使ってメインのブログに引っ張り出し、そこから画像も表示したいと考えています (RSS フィードには画像がある場合があるため)。 .
RSS フィードを表示するのはそれほど難しいことではありません。
誰かアイデアがあれば、撃ってください。
編集:- 外部の RSS フィードをワードプレスでカスタム投稿タイプとして表示する方法を知っている人はいますか?
簡単な方法は、Wordpress 独自のfetch_feed
関数を使用することです:
http://codex.wordpress.org/Function_Reference/fetch_feed
簡単な例 (カスタム投稿タイプを既に設定していると仮定します):
function import_feed_items()
{
$feed = fetch_feed('http://feeds.bbci.co.uk/news/uk/rss.xml');
if( !is_wp_error($feed) )
{
if( $last_import = get_option('last_import') )
{
$last_import_time = $last_import;
} else {
$last_import_time = false;
}
$items = $feed->get_items();
$latest_item_time = false;
foreach ( $items as $item )
{
$item_date = $item->get_date('Y-m-d H:i:s');
if( $last_import_time && ($last_import_time >= strtotime($item_date)) )
{
continue;
}
$post = array(
'post_content' => $item->get_content(),
'post_date' => $item_date,
'post_title' => $item->get_title(),
'post_status' => 'publish',
'post_type' => 'custom_post_type'
);
wp_insert_post($post);
if( strtotime($item_date) > $latest_item_time )
{
$latest_item_time = strtotime($item_date);
}
}
if( false !== $latest_item_time )
{
update_option('last_import', $latest_item_time);
}
}
else
{
echo $feed->get_error_message();
}
}
add_action('wp', 'import_feed_items');
コンテンツにイメージ タグがある場合は、php の DomDocument クラスを使用して URL を取得し、それをサーバーにアップロードして、注目のイメージとして設定できます。
http://codex.wordpress.org/Function_Reference/wp_insert_attachment
http://codex.wordpress.org/Function_Reference/set_post_thumbnail
編集
タイムスタンプチェックを修正しました。この更新された例では、'wp' フックを使用して実行されるため、結果をより迅速に確認できます。これを cron タスクとして設定することをお勧めします。http://codex.wordpress.org/Function_Reference/wp_schedule_eventを参照してください
これを試してみませんかhttp://wordpress.org/extend/plugins/display-latest-rss-feeds/ 任意のアカウントから RSS フィードを取得し、ブログに表示します。残念ながら、RSS フィードのタイトルと元のブログへのパーマリンクだけの画像は表示されませんが、必要に応じてソース コードを簡単に変更できます。
残念ながら、私は手に負えない方法を知りませんが、プラグインの変更を検討しましたか? 周りにはたくさんのコンテンツ キュレーション プラグインがあります (feedwordpress、autoblog など)。おそらくどこかで行を見つけてwp_insert_post()
、カスタム投稿タイプ/タクソノミーを含めるように変更できます。
編集
自分でプラグイン(feedwordpress)に飛び込み、すべてのinsert_post
ものを入れました-1538行目syndicatedpost.class.php
のメインwp_insert_post()
そのプラグインコードを読んでいるときに笑いが好きなら、編集してください。fワードの多くのインスタンスが見つかります...笑