FeedWordPress - 将字符串保存为自定义字段

时间:2012-09-16 22:58:06

标签: wordpress wordpress-plugin

我使用FeedWordPress插件http://wordpress.org/extend/plugins/feedwordpress/将帖子从一个网站拉到另一个网站。

我编写了一个过滤器,经过Stack用户的一些帮助后成功扫描$ content并将图片URL提取到$ new_content

define('FWPASTOPC_AUTHOR_NAME', 'radgeek');

add_filter(
/*hook=*/ 'syndicated_item_content',
/*function=*/ 'fwp_add_source_to_content',
/*order=*/ 10,
/*arguments=*/ 2
);

function fwp_add_source_to_content ($content, $post) {
// Use SyndicatedPost::author() to get author
// data in a convenient array
$content = $post->content();

// Authored by someone else
if( preg_match( '/<img[^>]+src\s*=\s*["\']?([^"\' ]+)[^>]*>/', $content, $matches ) ) {
$new_content .= 'URL IS '.$matches[0].'';

return $new_content;
}
else
{
}
}

我现在要做的是将此网址保存到自定义字段中,而不是仅返回它。有没有人取得过类似的成就?

1 个答案:

答案 0 :(得分:0)

据我了解,该插件会从外部RSS Feed中抓取内容并将其创建为您网站中的帖子。

如果是这种情况,使用您的过滤器,您应该能够在$post变量中获取帖子ID。

所以您只需要add_post_meta()功能即可将自定义字段添加到特定帖子。

因此,将您的代码包含在其中应该类似于:

define('FWPASTOPC_AUTHOR_NAME', 'radgeek');

add_filter(
/*hook=*/ 'syndicated_item_content',
/*function=*/ 'fwp_add_source_to_content',
/*order=*/ 10,
/*arguments=*/ 2
);

function fwp_add_source_to_content ($content, $post) {
// Use SyndicatedPost::author() to get author
// data in a convenient array
$content = $post->content();

// Authored by someone else
if( preg_match( '/<img[^>]+src\s*=\s*["\']?([^"\' ]+)[^>]*>/', $content, $matches ) ) {
$new_content .= 'URL IS '.$matches[0].'';    

//Add custom field with author info to post
add_post_meta($post->ID, 'post_author', $new_content); 

return $new_content;
}
}