因此,我创建了一个函数,在创建帖子时更新帖子中的几个自定义字段。这样做的目的是清理这些信息,以便我可以轻松地将其用于其他目的。当我手动创建帖子时,该函数工作正常。然而,我将数百篇帖子直接导入到站点(使用WP All import),对于这些导入的帖子,似乎此功能不适用。目前,我正在使用“save\\u post”、“publish\\u post”和“new\\u to\\u publish”挂钩来尝试实现这一点。然而,它们似乎都不起作用。我错过什么了吗?有没有更好的方法来实现这一点?以下是我迄今为止的简略版本:
add_action( \'save_post\', \'sterilize_vehicle_information\' );
add_action( \'publish_post\', \'sterilize_vehicle_information\' );
add_action( \'new_to_publish\', \'sterilize_vehicle_information\' );
function sterilize_vehicle_information( $post_id ) {
$internet_price = get_field(\'internet_price\',$post_id);
update_post_meta( $post_id, \'internet_price\', preg_replace( "/[^0-9]/", "", $internet_price ) );
}
感谢您的洞察力!
SO网友:JMau
在大多数情况下,有一个钩子对我有效,而你使用的三个钩子都失败了。它是transition_post_status
:
add_action(\'transition_post_status\', \'sterilize_vehicle_information\', 10, 3);
function sterilize_vehicle_information( $post, $new_status, $old_status) {
$internet_price = get_field(\'internet_price\',$post->ID);
if( $new_status == \'publish\' && old_status != \'publish\' ) {
update_post_meta( $post->ID, \'internet_price\', preg_replace( "/[^0-9]/", "", $internet_price ) );
}
}
希望这会有所帮助。