1

我正在尝试在 wordpress 中保存/更新帖子时触发偶数...请参见此处:

add_action('save_post', 'generate_location');

function generate_location($post_id) {   
    echo "hey"; 
}

问题是它不工作......任何想法为什么?句法?

4

2 回答 2

4

WordPress 实现了Post/Redirect/Get 模式以避免重复的表单提交,因此您不会echosave_post回调中看到任何内容。

相反,您可以执行wp_die( 'hey' )替代操作,或者将某些内容记录到数据库或文件系统中。

于 2012-10-22T20:20:39.420 回答
1

我不知道你是否得到了这个工作,但我遇到了同样的问题并发现了如何解决它!

在第 2940 行的 wp-includes/post.php 中(在撰写本文时),此 if/else 在保存帖子时运行:

if ( !empty($page_template) && 'page' == $data['post_type'] ) {

您会注意到,如果模板出现错误,则函数会停在那里并且永远不会调用 save_post。

就我而言,我试图保存的帖子是从预先存在的网站导入的。新站点根本没有页面模板,因此 WP 仍在尝试使用之前的模板保存页面,失败,因此;save_post 从未被调用过。

我添加了

/* Template Name: Default Template */

到page.php,批量编辑,选择模板并保存。从 page.php 中删除模板名称(因为它显示了两次(,现在每次都会触发 save_post。

无论如何,这就是我的解决方案。我敢肯定它会影响其他人,在某个地方。

于 2014-03-12T19:57:56.633 回答