WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

БАГ: Разные URL для одной и той же Рубрики (термина таксономии)

В рубриках, как и в прочем других таксономиях, url работает не совсем корректно. Например, рубрика доступна по адресу https://wp-kama.ru/cat/wordpress/codex, а также по адресу https://wp-kama.ru/cat/wordpress/codex/codex или вообще https://wp-kama.ru/cat/wordpress/dfdfdf/codex.
Я так понимаю это проблема всего вордпресс, можно ли как-то решить проблему, чтобы рубрики были доступны по 1 url-адресу? А остальные адреса отдавали 404. Спасибо.

1
ВЛАДИМИР
1 месяц назад
  • 2
    Kama8394

    Да это проблема WP. И что странно по дефолту даже канонических ссылок нет в HEAD.

    Решить можно таким хаком:

    add_action( 'template_redirect', 'check_301redirect_tax_url', 9 );
    function check_301redirect_tax_url(){
    
    	// not taxonomy
    	if( ! ( is_category() || is_tag() || is_tax() ) )
    		return;
    
    	$qo = get_queried_object();
    
    	$term_url = get_term_link( $qo );
    	$parsed_url = parse_url( $_SERVER['REQUEST_URI'] );
    
    	if( strpos( $parsed_url['path'], wp_make_link_relative( $term_url ) ) === false ){
    		$redirect_to = isset( $parsed_url['query'] ) ? "$term_url?{$parsed_url['query']}" : $term_url;
    		wp_redirect( $redirect_to, 301 );
    		exit;
    	}
    
    }
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация