2012-09-16 36 views
0

我正在使用FeedWordPress插件http://wordpress.org/extend/plugins/feedwordpress/将帖子从一个站点拉到另一个站点。FeedWordPress - 将字符串保存为自定义字段

我写了一个过滤器,从协议栈的用户一些帮助后,成功地将扫描$内容和提取图像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 
{ 
} 
} 

我想现在要做的是拯救这个网址进入的自定义字段而不是仅仅返回它。有没有人取得类似的成就?

回答

0

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

如果是这种情况,使用您的过滤器,您应该能够获取$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; 
} 
} 
+0

感谢您的答复,它几乎符合我在哪里现在。出于某种原因,它不会将数据写入自定义字段。我试图回应出$ post-> ID,它是空白的,这让我认为这是问题所在? – fightstarr20

+0

嘿@ fightstarr20,你可以var_dump $ post并告诉我们你使用哪个插件?今天我可以多看多一点。 – csilk