Простой способ управления тегами title и description для seo оптимизации
Создаем произвольные поля в плагине acf с именами seo_title и seo_description, выставляем условия отображения на нужные типы записей.
В functions.php сама функция
<?
add_theme_support('title-tag');
remove_action('wp_head', '_wp_render_title_tag', 1); // удаляем стандартный вывод тайтла
add_action('wp_head', 'add_seo_tags', 1); // добавляем свою функцию
function add_seo_tags()
{
global $post;
if(is_singular()) {
if($title = get_field('seo_title')) {} else {
$title = wp_get_document_title();
}
if($description = get_field('seo_description')) {} else {
$description = '';
}
}
if(is_archive()) {
if($title = get_field('seo_title', 'term_'.get_queried_object()->term_id)) {} else {
$title = wp_get_document_title();
}
if($description = get_field('seo_description', 'term_'.get_queried_object()->term_id)) {} else {
$description = '';
}
}
// выводим содержимое
echo "<title>" . do_shortcode($title) . "</title>\n";
if ($description) { echo "<meta name=\"description\" content=\"" . do_shortcode($description) . "\" />\n"; }
}
?>
Код подходит под все типы записей и архивы.
По ситуации можно легко дописать необходимые условия для других типов контента.