Обычный заголовок и мета-описание Yoast больше не работают при использовании wpseo_title и wpseo_metadesc

Приведенные ниже коды работают при изменении заголовка и метаописания по строкам запроса. Была только одна страница с 3 строками запроса. На других страницах нет строк запроса. С кодами в functions.php заголовок и метаописание других страниц Yoast не работают должным образом. Без кодов заголовок и мета-описание Yoast работают правильно. Есть ли способ заставить коды работать, по-прежнему используя заголовок Yoast и мета-описание?

/* Changing title and meta description by query strings */
function yoast_add_title (){
    if ( ! empty( $_GET[ 'q' ] ) && $_GET['q'] == 'medical' ) {
        $title = 'Health';
    }
    if ( ! empty( $_GET[ 'q' ] ) && $_GET['q'] == 'wealth' ) {
        $title = 'Financial';
    }
    if ( ! empty( $_GET[ 'q' ] ) && $_GET['q'] == "retirement" ) {
        $title = 'Wealth';
    }
    return $title; 
}

function yoast_add_metadesc (){
    if ( ! empty( $_GET[ 'q' ] ) && $_GET['q'] == 'medical' ) {
        $metadesc = 'Health';
    }
    if ( ! empty( $_GET[ 'q' ] ) && $_GET['q'] == 'wealth' ) {
        $metadesc = 'Financial';
    }
    if ( ! empty( $_GET[ 'q' ] ) && $_GET['q'] == "retirement" ) {
        $metadesc = 'Wealth';
    }
    return $metadesc; 
}

add_filter( 'wpseo_title', 'yoast_add_title', 10, 1);
add_filter( 'wpseo_metadesc', 'yoast_add_metadesc', 10, 1);

person MetDark    schedule 24.04.2018    source источник


Ответы (1)


Приведенный ниже код работает вместо этого в functions.php. Как-то мне нужно настроить таргетинг на точный идентификатор страницы и использовать template_redirect.

function yoast_add_title (){
    if ( $_GET['q'] == 'medical' ) {
        $title = 'Health';
    }
    if ( $_GET['q'] == 'wealth' ) {
        $title = 'Financial';
    }
    if ( $_GET['q'] == 'retirement' ) {
        $title = 'Wealth';
    }
    return $title;
}

function yoast_add_metadesc (){
    if ( $_GET['q'] == 'medical' ) {
        $metadesc = 'Health';
    }
    if ( $_GET['q'] == 'wealth' ) {
        $metadesc = 'Financial';
    }
    if ( $_GET['q'] == 'retirement' ) {
        $metadesc = 'Wealth';
    }
    return $metadesc; 
}

function yoast_add_all (){
    if ( is_page(50) && ( ! empty( $_GET[ 'q' ] ) ) ) { 
        add_filter( 'wpseo_title', 'yoast_add_title', 10, 1 );
        add_filter( 'wpseo_metadesc', 'yoast_add_metadesc', 10, 1 );
    }
}

add_action( 'template_redirect', "yoast_add_all" );
person MetDark    schedule 26.04.2018