我试图在保存/更新wordpress中的帖子时触发一个偶数…请参见此处:
add_action('save_post', 'generate_location');
function generate_location($post_id) {
echo "hey";
}
问题是它不起作用…为什么有任何想法?句法?
#1
WordPress实现了Post / Redirect / Get模式以避免重复提交表单, 因此你不会看到任何来自save_post回调的回显。
相反, 你可以改用wp_die(‘hey’), 或将某些内容记录到数据库或文件系统中。
#2
我不知道你是否可以使用此功能, 但是我遇到了同样的问题, 并发现了解决方法!
在第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。
无论如何, 这就是我的解决方案。我敢肯定, 这会影响到别人。
评论前必须登录!
注册