1

いくつかの異なるブログに書き込みをしている友人がいて、あまり人気のないブログの記事を RSS フィードを使ってメインのブログに引っ張り出し、そこから画像も表示したいと考えています (RSS フィードには画像がある場合があるため)。 .

RSS フィードを表示するのはそれほど難しいことではありません。

誰かアイデアがあれば、撃ってください。

編集:- 外部の RSS フィードをワードプレスでカスタム投稿タイプとして表示する方法を知っている人はいますか?

4

4 に答える 4

4

簡単な方法は、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を参照してください

于 2012-11-13T08:20:53.647 に答える
0

これを試してみませんかhttp://wordpress.org/extend/plugins/display-latest-rss-feeds/ 任意のアカウントから RSS フィードを取得し、ブログに表示します。残念ながら、RSS フィードのタイトルと元のブログへのパーマリンクだけの画像は表示されませんが、必要に応じてソース コードを簡単に変更できます。

于 2012-11-13T00:57:43.717 に答える
0

残念ながら、私は手に負えない方法を知りませんが、プラグインの変更を検討しましたか? 周りにはたくさんのコンテンツ キュレーション プラグインがあります (feedwordpress、autoblog など)。おそらくどこかで行を見つけてwp_insert_post()、カスタム投稿タイプ/タクソノミーを含めるように変更できます。

編集 自分でプラグイン(feedwordpress)に飛び込み、すべてのinsert_postものを入れました-1538行目syndicatedpost.class.phpのメインwp_insert_post()

そのプラグインコードを読んでいるときに笑いが好きなら、編集してください。fワードの多くのインスタンスが見つかります...笑

于 2012-11-13T00:33:48.097 に答える