我正在尝试在 wordpress 中保存/更新帖子时触发偶数...请参见此处:
add_action('save_post', 'generate_location');
function generate_location($post_id) {
echo "hey";
}
问题是它不工作......任何想法为什么?句法?
我正在尝试在 wordpress 中保存/更新帖子时触发偶数...请参见此处:
add_action('save_post', 'generate_location');
function generate_location($post_id) {
echo "hey";
}
问题是它不工作......任何想法为什么?句法?
WordPress 实现了Post/Redirect/Get 模式以避免重复的表单提交,因此您不会echo
从save_post
回调中看到任何内容。
相反,您可以执行wp_die( 'hey' )
替代操作,或者将某些内容记录到数据库或文件系统中。
我不知道你是否得到了这个工作,但我遇到了同样的问题并发现了如何解决它!
在第 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。
无论如何,这就是我的解决方案。我敢肯定它会影响其他人,在某个地方。