Php Wordpress save_post hook有错误的帖子?

Php Wordpress save_post hook有错误的帖子?,php,wordpress,hook,Php,Wordpress,Hook,我使用save_post钩子将元数据保存到我的自定义帖子类型中,得到了一些奇怪的结果。数据保存到错误的post 如果我使用下面的代码记录post ID,我会发现它不正确,也就是说,当我编辑post 7890时,日志条目是3345(保存的数据就放在这里) 我是否误解了save_post挂钩的工作原理?感谢您的帮助:) 谢谢你基本上你是正确使用它的。$post_id应该是要保存的帖子的id。请在此处阅读更多信息: 然而,可能有各种原因导致您在这里收到错误的帖子ID 保存帖子会触发另一篇帖子的保存过

我使用save_post钩子将元数据保存到我的自定义帖子类型中,得到了一些奇怪的结果。数据保存到错误的post

如果我使用下面的代码记录post ID,我会发现它不正确,也就是说,当我编辑post 7890时,日志条目是3345(保存的数据就放在这里)

我是否误解了save_post挂钩的工作原理?感谢您的帮助:)


谢谢你

基本上你是正确使用它的。$post_id应该是要保存的帖子的id。请在此处阅读更多信息:

然而,可能有各种原因导致您在这里收到错误的帖子ID

  • 保存帖子会触发另一篇帖子的保存过程
  • 您正在收到一些修订ID
  • 您从表单中发送了错误的ID数据
  • 也许其他人
在savepost钩子回调中,您应该检查帖子的类型是否正确,以及它是否是修订版或其他内容

$post = get_post($post_id);

if($post->post_type != 'desired-post-type') {
return;
}

if(wp_is_post_revision( $post_id ) {
return;
}
。。。也许还有其他支票


什么是邮政3345?将其打印到控制台并进行检查。很可能是不同的帖子类型,或者您提交了错误的ID。

基本上您使用的是正确的。$post_id应该是要保存的帖子的id。请在此处阅读更多信息:

然而,可能有各种原因导致您在这里收到错误的帖子ID

  • 保存帖子会触发另一篇帖子的保存过程
  • 您正在收到一些修订ID
  • 您从表单中发送了错误的ID数据
  • 也许其他人
在savepost钩子回调中,您应该检查帖子的类型是否正确,以及它是否是修订版或其他内容

$post = get_post($post_id);

if($post->post_type != 'desired-post-type') {
return;
}

if(wp_is_post_revision( $post_id ) {
return;
}
。。。也许还有其他支票


什么是邮政3345?将其打印到控制台并进行检查。很可能是不同的帖子类型,或者您提交了错误的ID。

保存帖子钩子包含3个参数
($post\u ID,$post,$update)
,它还可以附加到帖子类型:
保存帖子{$post->post\u type}
如果
$update===false
将创建一个全新的帖子

在执行自定义操作之前,也必须进行一些检查。您经常遇到的错误可能是保存了后期修订

假设CPT是“工作”


save\u post
hook接受3个参数
($post\u id,$post,$update)
,它还可以附加到一个post类型:
save\u post{$post->post\u type}
如果
$update===false
将创建一个全新的帖子

在执行自定义操作之前,也必须进行一些检查。您经常遇到的错误可能是保存了后期修订

假设CPT是“工作”


非常感谢Blackam,帖子类型多种多样,它不是修订版,我的表单是默认的WP表单。但是你关于“保存帖子会触发另一篇帖子的保存过程”的建议是正确的!另一个函数中有一些代码,调用“wp\u update\u post”,但它工作不正常-感谢您给我发送了正确的方法:)vThanks这么多blackam,帖子类型多种多样,它不是修订版,我的表单是默认的wp表单。但是你关于“保存帖子会触发另一篇帖子的保存过程”的建议是正确的!在另一个函数中有一些代码,调用“wp\u update\u post”,但它工作不正常-感谢您给我提供了正确的方法:)v
add_action( 'save_post_jobs', 'save_data_so', 10, 3 );

function save_data_so( $id, $post, $update ) {
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) 
        return;

    # A wp_nonce_field is present, check for it
    // if ( !wp_verify_nonce( $_POST['noncename'], plugin_basename( __FILE__ ) ) )
    //    return;

    # Not sure if necessary when using save_post_POST-TYPE
    if ( 'revision' == $post->post_type )
        return;

    # Do your thing
}