我想更新我的一个元字段并重定向,我正在使用post_updated
钩这是我的密码。
function job_publish_status( $post_ID, $post_after, $post_before ) {
$job_published_date = get_the_time("Y-m-d", $post_ID);
$expire_date = date(\'Y-m-d\', strtotime($job_published_date. \' + 60 days\'));
update_post_meta($post_ID, \'_job_expires\', $expire_date);
$url = get_site_url();
$url = $url.\'/wp-admin/post.php?post=\'.$post_ID.\'&action=edit\';
wp_redirect( $url );
exit;
}
add_action(\'post_updated\', \'job_publish_status\', 99, 3 );
它正在更新此
_job_expires
元字段并正确重定向。当我编辑文章内容和标题时,它会更新标题和内容,但不会更新该文章中的其他元字段。发布内容更新和元字段更新后是否会触发任何挂钩?
最合适的回答,由SO网友:Mayeenul Islam 整理而成
save_post
和new_to_publish
通过一些检查,就足以更新post元数据。您不需要重定向。
<?php
/**
* Update Postmeta.
*
* @param integer $post_id Post ID.
*/
function wpse355298_job_publish_status( $post_id ) {
// Check autosave.
if ( wp_is_post_autosave( $post_id ) ) {
return $post_id;
}
// Check post revision.
if ( wp_is_post_revision( $post_id ) ) {
return $post_id;
}
// Check permissions.
if ( \'post\' === $_POST[\'post_type\'] ) {
if ( ! current_user_can( \'edit_post\', $post_id ) ) {
return $post_id;
}
}
$job_published_date = get_the_time( \'Y-m-d\', $post_id );
$expire_date = date( \'Y-m-d\', strtotime( $job_published_date. \' + 60 days\' ) );
update_post_meta( $post_id, \'_job_expires\', $expire_date );
}
add_action( \'save_post\', \'wpse355298_job_publish_status\' );
add_action( \'new_to_publish\', \'wpse355298_job_publish_status\' );