@Vodol

Как настроить редирект записей в Wordpress при смене структуры постоянных ссылок?

Есть сайт на Wordpress, у которого сейчас такая структура ссылок для записей:
site.ru/%postname%-%post_id%/

Хочу заменить ее на site.ru/%postname%/
Записей довольно много, поэтому руками делать редиректы со старых URL на новые неудобно.
Есть ли подходящая функция, чтобы настроить 301 редирект автоматом для всех страниц?

Upd.
Нашел плагин, который умеет редиректить /%postname%/%post_id%/ на /%postname%/. Почти то, что мне надо, там "/", а в моем случае "-".

Выдрал из кода этого плагина функцию. Там регулярка, я в них плохо разбираюсь, не могу понять где именно надо слеш заменить на дефис. Вот как он выглядит:

function wp_redirect_permalink()
{
	//acquire the complete url of the current page the user is on
	$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
	//the preg_match will check for any pages having a number after the main link except for pages/ one as it's navigation
	if (preg_match("/.+?\/page\/(*SKIP)(*F)|(.+?\/)\d+\/(.*)/i", $actual_link, $matches)) {
		$new_redirect_link = $matches[1].$matches[2];
		wp_redirect( $new_redirect_link, 301 ); exit;
	}
}
add_action( 'template_redirect', 'wp_redirect_permalink' );
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Обо мне расскажет yawncato.com
Помнится мне вордпресс сам ставит нужные редиректы при смене чпу.
На тестовом сайте не пробовали?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы