Wordpress帖子保存/编辑帖子挂钩

Wordpress帖子保存/编辑帖子挂钩,wordpress,post,hook,Wordpress,Post,Hook,我正在寻找一个管理员钩子的帖子,被解雇后,该职位已被保存。问题是:save\u post不包含已更改的post对象数据。新的更改只能在$\u POST数组中找到。但我需要一种方法,一旦post\u名称发生更改,就将permalink更新为外部API。但是它将不起作用,因为$post对象仍然是保存操作之前的旧对象。我认为最合适的方法是从数据库中查询旧值,并将值与$\u post数组值进行比较 这是一个可以帮助您从数据库中读取值的链接 附言:您当然应该在“将新值保存到数据库”之前进行比较。您应该能

我正在寻找一个管理员钩子的帖子,被解雇后,该职位已被保存。问题是:
save\u post
不包含已更改的post对象数据。新的更改只能在
$\u POST
数组中找到。但我需要一种方法,一旦
post\u名称发生更改,就将permalink更新为外部API。但是它将不起作用,因为
$post
对象仍然是保存操作之前的旧对象。

我认为最合适的方法是从数据库中查询旧值,并将值与
$\u post
数组值进行比较

这是一个可以帮助您从数据库中读取值的链接


附言:您当然应该在“将新值保存到数据库”之前进行比较。

您应该能够在使用priority参数(在本例中设置为20)更新帖子之后进行连接:

由于WordPress 3.0.0,因此挂钩可用。这有助于了解更新后帖子中发生的变化。您可以在WP Codex中使用作为示例

add_action( 'post_updated', 'check_updated_post_name', 10, 3 );
function check_updated_post_name( $post_ID, $post_after, $post_before ) {
    if ( $post_after->post_name != $post_before->post_name ) {
        // do what you need
    }
}
如果刚插入一根柱子,你可以使用或钩子。检查第三个参数的值以确保post是新的

add_action( 'save_post', 'check_new_post_name', 10, 3 );
function check_new_post_name( $post_ID, $post, $update ) {
    if ( ! $update ) {
        // do what you need
    }
}
add_action( 'save_post', 'check_new_post_name', 10, 3 );
function check_new_post_name( $post_ID, $post, $update ) {
    if ( ! $update ) {
        // do what you need
    }
}