如何从外部RSS提要添加图像URL并插入到自定义域中?

时间:2011-04-26 作者:VKJSM

*Editor Note (原始标题:通过自定义字段从图像中获取的url)更改为更具描述性。

大家好,我甚至不确定这是否可以做到,但。。。在我搜索了6个小时后,我不得不问:/

我有一个图像滑块,我使用它在自定义字段(postimage)中添加图像url(而不是拇指url)。我已经设置了一个rss提要,从我的booru animelon进入wordpress。com/booru它工作得很好,但我需要一种方法让它在这个自定义字段中自动添加图像url

2 个回复
SO网友:Chris_O

这很难,但我认为这会奏效。如果我错了,请有人纠正我。

这将使用内置于WordPress中的外部简单饼图库来获取提要、获取图像url并为每个项目创建新帖子,并将图像url保存为自定义字段。

要激活该进程,我们必须连接到wp\\u cron。下面的代码每天都这样做,但最好每周都这样做,以防止重叠。可能会发生一些重叠,因此仍需要一种方法来检查是否已导入图像

首先,我们需要一个函数来在创建帖子后保存自定义字段。本节来自another answer I found on WordPress Answers.

编辑:

这需要包装在插件中以计划cron事件,而cron事件缺少使其启动的操作。

编辑:#2:

我测试了插件并进行了一些编辑,它完全可以工作,除了我们获取的RSS提要包含相对URL,因此在代码中,滑块代码需要回显域名,然后是自定义字段:即:

\'<img src="http://animelon.com<?php get_post_meta($post->ID, \'feed_image_url\', true); ?>" />

<?php
/*
Plugin Name: Fetch The Feed Image
Version: 0.1
Plugin URI: http://c3mdigital.com       
Description: Sample plugin code to fetch feed image from rss and save it in a post
Author: Chris Olbekson
Author URI: http://c3mdigital.com
License: Unlicense For more information, please refer to <http://unlicense.org/>
*/

//Register the cron event on plugin activation and remove it on deactivation

register_activation_hook(__FILE__, \'c3m_activation_hook\');
register_deactivation_hook(__FILE__, \'c3m_deactivation_hook\');

add_action( \'c3m_scheduled_event\', \'create_rss_feed_image_post\');
function c3m_activation_hook() {
    wp_schedule_event(time(), \'weekly\', \'c3m_scheduled_event\');
}

function c3m_deactivation_hook() {
 wp_clear_scheduled_hook(\'c3m_scheduled_event\');    
}


function create_rss_feed_image_post() {
     if(function_exists(\'fetch_feed\')) {
            include_once(ABSPATH . WPINC . \'/feed.php\');               // include the required file
            $feed = fetch_feed(\'http://animelon.com/booru/rss/images\'); // specify the source feed

    }       

        foreach ($feed->get_items() as $item) :

        //  global $user_ID;
            $new_post = array(
            \'post_title\' =>  $item->get_title(),
            \'post_status\' => \'published\',
            \'post_date\' => date(\'Y-m-d H:i:s\'),
            //\'post_author\' => $user_ID,
            \'post_type\' => \'post\',
            \'post_category\' => array(0)
            );
            $post_id = wp_insert_post($new_post);

        if ($enclosure = $item->get_enclosure() )

            update_post_meta( $post_id, \'feed_image_url\', $enclosure->get_link() );
        endforeach;
    }
新增帖子截图:

enter image description here

创建的自定义字段的屏幕截图:

enter image description here

SO网友:Milo

在\\u内容中添加一个过滤器,检查它是否是提要并添加图像。

add_filter(\'the_content\', \'add_image_to_feed\');

function add_image_to_feed( $content ){
if( is_feed() ){
    $image = get_post_meta($post->ID, \'Your Custom Field\');
    $content = \'<img src="\'.$image.\'" />\'.$content;
    return $content;
} else {
    return $content;
}
}
至少我认为这会奏效:)

结束

相关推荐

Changing attachment urls?

如何更改附件页URL的格式/[post-url]/[attachment-name]/ 到/media/[attachment-name]/? 我知道我可以覆盖get_attachment_link 通过attachment_link 过滤器,但我想我需要更改重定向结构,以便WordPress知道如何处理这些URL?