将编辑器内容写入文件

时间:2015-04-08 作者:Marty Kokes

我有一个正在进行的项目,在保存或更新帖子时,我需要将帖子编辑器的内容写入web服务器上的物理文件。在编写之前,我将对内容进行解析和操作,但在将其加载到变量中时遇到了问题。我是否应该采取不同的方式来解决这个问题,或者我是否遗漏了什么?当前它写入的文件是空白的,如果我在$content中插入一个简单字符串,它就会写入文件,这让我相信get\\u the\\u content()不起作用。有什么想法吗?

function pht_write_file() {  
$file = WP_PLUGIN_DIR."/myplugin/test.xml"; 
$content = get_the_content();
file_put_contents($file, $content);
}
add_action(\'publish_post\', \'pht_write_file\');

1 个回复
最合适的回答,由SO网友:TheGentleman 整理而成

你应该钩住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 如果您的意思是只在发布时保存文本,而不是在保存时保存。

结束