5ответ(ов) в теме
Kerncraft1
не в сети 4 года
На сайте с 18.07.2014
Участник
Тем 30
Сообщения 157
1
22:13

Доброго дня! Пытаюсь решить следующую задачку:

Есть произвольный тип записи "Новость" и есть пользовательская таксономия для этого типа записей. Также установлен плагин SEO by Yoast.

Необходимо переопределить заголовки, которые генерируются плагином SEO. Для разных категорий различные шаблоны формирования title.

Решение: у Yoast есть хук wpseo_title, к которому можно прицепить функцию. Делаю так:

add_filter('wpseo_title', 'new_wpseo_title');
function new_wpseo_title($title) {
    if(  is_singular( 'news') ) {
        $title = get_template_part( 'include/seo', 'title' );
    }
    return $title;
}

Шаблоны вывода пишу в файле include/seo-titl.php

<?php
if ( has_term(array('68','69'), 'news_category') ) {
    echo 'Свой SEO Title 1';
} elseif ( has_term(array('70'), 'news_category') ) {
    echo 'Свой SEO Title 2';
} else {
    echo 'условие не подходит';
}
?>

Проблема: фильтр переписывает title от плагина yoast, но в результате заголовок получается "стандартный" (Постнэйм - Сайтнэйм), а мой заголовок становиться прямиком перед тегом (см. скриншот -

Вы не можете просматривать опубликованные ссылки

).


Fatal error: Uncaught Error: Call to undefined function ads_get_box() in /var/www/www-root/data/www/codeseller.ru/wp-content/themes/codeseller/includes/adv.php:15 Stack trace: #0 /var/www/www-root/data/www/codeseller.ru/wp-includes/class-wp-hook.php(310): add_adv_content_after_first_forum_post('pfm-single-post...', '/var/www/www-ro...') #1 /var/www/www-root/data/www/codeseller.ru/wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters('', Array) #2 /var/www/www-root/data/www/codeseller.ru/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #3 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/functions/files.php(57): do_action('rcl_include_tem...', 'pfm-single-post...', '/var/www/www-ro...') #4 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/add-on/prime-forum/functions-templates.php(117): rcl_include_template('pfm-single-post...', '/var/www/www-ro...') #5 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/add-on/prime-forum/themes/prime-first/templates/pfm in /var/www/www-root/data/www/codeseller.ru/wp-content/themes/codeseller/includes/adv.php on line 15