我試圖添加一個content_save_pre過濾器來根據內容中的文本更新自定義字段,例如[something] Thing [/ something]會告訴插件將自定義字段設置爲「Thing」。從一個過濾器中獲取WordPress發帖ID
我的代碼(如下)在通過Web界面發佈時工作正常,但在我嘗試過的客戶端(MarsEdit和WordPress iOS)上失敗,並且出現「Press This」書籤。 []標記被刪除,但自定義字段未被設置。
function dfll_get_link($post_content) {
$dflink = dfll_find_link($post_content);
if ($dflink) {
global $post;
$post_id = $post->ID;
update_post_meta($post_id, 'linked_list_url', $dflink);
}
$temp = '/(' . dfll_regesc('[ll]') . '(.*?)' . dfll_regesc('[/ll]') . ')/i';
$post_content = (preg_replace($temp, '', $post_content));
return $post_content;
}
add_filter('content_save_pre', 'dfll_get_link');
從一些測試看來,$ post_id變量似乎沒有被設置。有沒有辦法在這些情況下獲得帖子ID?或者我應該嘗試添加過濾器到不同的鉤子? (儘管如此,我想不出任何適合。)
本身並不是一個解決方案,但您可以嘗試此修補程序:http://core.trac.wordpress.org/ticket/15515 – windyjonas 2011-03-29 08:13:23