【问题标题】:What hook to use after updating post?更新帖子后使用什么钩子?
【发布时间】:2016-06-16 06:39:53
【问题描述】:

所以我有一个自定义字段 X 可以在提交或更新帖子时自然地保存它的价值。用户输入此字段的值。

我想做的是,在帖子更新后,我想用 X 的值自动更新另一个名为 Y 的自定义帖子元字段。所以 Y 字段应该在用户不知道的情况下更新(在后端),我需要使用什么正确的钩子和函数?

【问题讨论】:

  • 我认为你可以使用 save_post 钩子

标签: php wordpress


【解决方案1】:

你好在这里你可以使用 save_post 钩子,无论帖子是创建还是更新,都会调用它。

function my_custom_field_save( $post_id ) {

// do your stuff here....

}
add_action('save_post', 'my_custom_field_save');

More About save_post hook

希望对你有帮助。

【讨论】:

    【解决方案2】:

    您可以使用save_post 操作挂钩在创建或更新帖子或页面时触发后更新元

    add_action( 'save_post', 'update_custom_value', 10, 3 );
    function update_custom_value( $post_id,$post, $update  ) {
      if ( 'post'== $post->post_type ) {
        if ( isset( $_REQUEST['x'] ) ) {
               $x= $_REQUEST['x'];
              update_post_meta($post_id,'Y', $x);   
         }
      }
    }
    

    //在创建帖子时仅对更新Y进行一次编辑

    add_action( 'save_post', 'update_custom_value', 10, 3 );
        function update_custom_value( $post_id,$post, $update  ) {
          if ( 'post'== $post->post_type ) {
            if ( isset( $_REQUEST['x'] ) ) {
                   $x= $_REQUEST['x'];
                   if(get_post_meta($post_id,'Y',true)=='')
                   {    
                      update_post_meta($post_id,'Y', $x);   
                   }
             }
          }
        }
    

    【讨论】:

    • 问题是当我在编辑帖子时更改 X 字段的值时,我必须单击两次更新才能更新 Y 字段。第一次点击更新时我需要更新它。
    • 创建帖子时,您只能更新 Y 的值 1 次,对吗?
    • 每当我创建或编辑帖子时,我都需要更新 Y 的值。字段 X 是一个下拉列表,因此如果我更改该值并更新帖子,我希望 Y 也更改。我只是希望在创建或编辑帖子后的任何时候这两个值都相同。
    • @JanisOzolins 检查出口上方的我的代码,它作为您的最后一条评论工作
    • 但是第二个sn-p是只有在Y为空时才更新。但是钩子 save_post 显然是问题所在,因为该函数是在字段更新之前执行的,这就是为什么我需要按两次 Update 才能使其工作的原因。 X 的新值在调用此函数后更新,这就是它现在不起作用的原因..
    猜你喜欢
    • 2013-12-03
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多