Здравствуйте!
Мне нужно изменить имя поста (slug), который присутствует в адресе к посту, при создании поста он указывается из заголовка, мне же нужно через хук задавать свое значение, но проблема в том что никак не найду способ изменения имени поста. В интернете ничего найти не могу, пробовал смотреть как это работает в админ панели, но те функции которые там нашел мне тоже не помогли, скорее всего не то использовал.
Подскажите пожалуйста как это сделать. Тоесть что бы было еще понятнее мне нужно что бы адрес поста test.com/category/my_post изменить допустим на test.com/category/new_post. Как это можно сделать?
Спасибо заранее! Надеюсь на Вашу помощь ибо сам уже сдался :(
// initial hook
add_action( 'save_post', 'prefix_save_post_callback' );
function prefix_save_post_callback( $post_id ) {
// verify post is not a revision
if ( ! wp_is_post_revision( $post_id ) ) {
// unhook this function to prevent infinite looping
remove_action( 'save_post', 'prefix_save_post_callback' );
// update the post slug
wp_update_post( array(
'ID' => $post_id,
'post_name' => 'some-new-slug' // do your thing here
));
// re-hook this function
add_action( 'save_post', 'prefix_save_post_callback' );
}
}
Спасибо большое!
Интересно что эту функцию также использовал wp_update_post, но передавал ей WP_Post объект, Вы же показали как правильно ее использовать.
Еще раз большое спасибо!