2012-09-16 56 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