我试图在wordpress中保存/更新帖子时触发一个...请看这里:
add_action('save_post', 'generate_location');
function generate_location($post_id) {
echo "hey";
}
问题是它不起作用...... 任何想法为什么?语法?
答案 0 :(得分:3)
WordPress实施Post/Redirect/Get pattern以避免重复提交表单,因此您不会在echo
回调中看到任何save_post
'。
相反,您可以改为wp_die( 'hey' )
,或者将某些内容记录到数据库或文件系统。
答案 1 :(得分: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。
无论如何,这是我案例中的解决方案。我相信它会影响到其他人,在某个地方。