Регенерация поля url для ЧПУ в posts
Необходимо регенерировать post_name, какого правила придерживаться? При переносе с другой системы информации, в ЧПУ возникли ошибки из-за неправильного перекодирования. Есть ли для этого готовая функция вордпресс или плагин? Или если это обычный алгоритм через php? В идеале конечно сделать командой sql...
Я не знаю правильно ли я отвечу на этот вопрос, потому что конкретики маловато, но ребята поправят если что.
Можно юзануть такой SQL запрос, чтобы изменить post_name для нужных записей:
Где
old_value- текущее значение post_name, аnew_value- новое значение.Не совсем то...
Когда создаёшь пост, в поле post_name автоматом пишется код, который я так понимаю получается от заголовка поста, пропущенного через некоторую функцию. Нужно поправить в куче постов (созданных не через вордпресс) правильные post_name
Есть такой плагин... как то он так называется - Auto Post Slug... Просто я может задачу не понимаю, как понять, посты не созданные через ВП?
Может быть так попробовать? - сделайте бекап сначала
<?php // Подключение к базе данных WordPress require_once('wp-config.php'); global $wpdb; // Выбор всех постов из базы данных $posts = $wpdb->get_results("SELECT ID, post_title FROM {$wpdb->prefix}posts WHERE post_type = 'post'"); // Цикл по всем постам foreach ($posts as $post) { // Генерация нового post_name на основе заголовка поста $new_post_name = sanitize_title($post->post_title); // Обновление post_name в базе данных для текущего поста $wpdb->update( "{$wpdb->prefix}posts", array('post_name' => $new_post_name), array('ID' => $post->ID) ); }Вы можете сохранить этот скрипт как PHP файл и запустить его на вашем сервере. Если постов много то может буксануть, но по сути, в теории, должно обновить все post_name
И куча постов это сколько? 10, 15, 20, 100, 1к, 10к, 100к... ))) Если несколько тысяч тогда другой вопрос
15к.
Написал скрипт переноса с очень старой цмс в посты вордпресс со всеми таксономиями с обрезкой и оптимизацией картинок. Рендерил 4часа. Всё легло замечательно. ЧПУ включил - не везде работает. Ну не очень важная штука, видать url не так сформировал.
По вашему коду смотрю - да. Он подойдёт. Спасибо. Мне нужна функция.
Так вот же плагин ребята делали наши https://ru.wordpress.org/plugins/cyr2lat/ в плагине можно и массово все поменять
Да. Вчера тоже на такой получилось выйти
Рад, что у вас все получилось. Сегодня кстати апдейт до ВП до 6.2