你应该钩住save_post
而不是publish_post
. publish_post
仅在文章最初发布时运行,不会捕获后续保存。
此外publish_post
钩子将参数传递给函数,这些参数应该用于检索有关发布帖子的信息,而不是get_the_content()
, 只有当你在圈内时才有效。
我想你在找这样的东西:
function pht_write_file($post_id){
if(get_post_status($post_id) !== \'publish\') return; //only run if post is published
$post = get_post($post_id);
$content = $post->post_content;
$file = WP_PLUGIN_DIR."/myplugin/test.xml";
}
add_action(\'save_post\', \'pht_write_file\');
此函数也将正确挂钩到
publish_post
如果您的意思是只在发布时保存文本,而不是在保存时保存。