Я хочу динамически изменять постоянную ссылку сообщения WordPress (post_name
) каждый раз, когда запись сохраняется / обновляется путем извлечения из настраиваемого поля, присутствующего в сообщении, и замены постоянной ссылки на это значение. У меня есть код в functions.php
, который работает, за исключением того, что он добавляет -2
к постоянной ссылке. Я предполагаю, что это происходит из-за того, что что-то происходит дважды: первый раз приводит к получению постоянной ссылки, а второй - к тому, что WordPress отвечает на «дубликат», добавляя -2
.
Это текущий код:
add_action('save_post', 'change_default_slug');
function change_default_slug($post_id) {
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return;
if ( !current_user_can('edit_post', $post_id) )
return;
remove_action('save_post', 'change_default_slug');
wp_update_post(array('ID' => $post_id, 'post_name' =>get_post_meta($post_id,'request_number',true)));;
add_action('save_post', 'change_default_slug');
}