Подправить небольшой скрипт для Wordpress
Для Wordpress написан простенький скрипт. Суть его в том, чтобы добавлять в конце URL пользовательской типа записи post_id.
Что нужно сделать. Скрипт работает как надо, но проблема в том, что при редактировании уже ранее опубликованных постов к URL добавляется post_id. Нужно сделать так, чтобы post_id в конце URL срабатывал только на момент первой публикации поста, при дальнейшем редактировании поста скрипт уже работать не должен.
И есть еще одна проблема, если заголовок поста заполнить в последнюю очередь в итоговом опубликованном посте вставляются только цифры или chernovik, это также надо поправить.
В итоге нужна стандартный принцип работы Permalink, но с добавлением цифр post_id в конце.
function add_id_to_url($post_id, $post, $update) {
// убираем зацикливание
remove_action( 'wp_insert_post', 'add_id_to_url' , 10);
// получаем пост
$post = get_post($post_id);
// обрабатываем только в новых постах
$is_draft = substr($post->post_name, 0, 9) == 'chernovik';
if ($post->post_type=='news' &&($is_draft || !$update)) {
// обрабатываем заголовок другими хуками, если есть
$post_title = sanitize_post_field( 'post_title', $post->post_title, $post->ID, 'display' );
// формируем урл
$slug = $post_title.'-'.$post_id;
// записываем новый урл
$my_post = array();
$my_post['ID'] = $post_id;
$my_post['post_name'] = $slug;
wp_update_post( $my_post );
}
// восстанавливаем хук
add_action( 'wp_insert_post', 'add_id_to_url', 10, 3 );
}
add_action('wp_insert_post', 'add_id_to_url', 10, 3);