Как в WordPress url рубрик и меток из кириллицы сделать латиницей с 301 редиректом
WPPW | 26 ноября 2017, 13:51 | 1
Есть сайт, в котором все страницы были прописаны на кириллице. Теперь есть необходимость перевести всё на латиницу.
Если с записями и страницами вопрос решился с помощью плагина Cyr to Lat enhanced, то для меток и рубрик старые адреса на кириллице стали выдавать 404 ошибку. Как сделать 301 редирект со старых страниц категорий и тегов?
Метки: Wordpress
Решения
Тут мы сохранили старые ярлыки меток в метаполе
old_slugadd_action( 'request', function ( $request ) { $q = new WP_Query( $request ); // Работаем только с метками, которые не определены if ( $q -> is_tag and ! empty( $q -> query['tag'] ) and ! $q -> have_posts() ) { // Пытаемся найти термин со старым ярлыком $terms = get_terms( [ 'taxonomy' => 'post_tag', 'number' => 1, 'meta_query' => [ [ 'key' => 'old_slug', 'value' => $q -> query['tag'], 'compare' => 'LIKE', ] ], ] ); // Если метка есть, то редиректим на неё if ( $terms ) { $term = $terms[0]; $url = get_term_link( $term ); wp_redirect( $url, 301 ); exit; } } return $request; } );