Предыдущая запись о seo без плагинов: SEO своими руками: description
Ключевым параметром для поисковой оптимизации, да и просто для того, чтобы страница выглядела в браузере по-человечески, является ее заголовок. Заголовок отображается в окне браузера, и он не обязательно совпадает с названием поста или страницы, так как может содержать дополнительные сведения. За формирование заголовка отвечает мета-тег title.
<title>Заголовок</title>
Давайте сформируем функцию, которая будет автоматически создавать заголовок для любой страницы блога. Для этого нужно добавить в файл functions.php:
function tp_meta_title ($sep=" / ",$bloginfo_name=''){ global $wp_query,$post; if (!$bloginfo_name) $bloginfo_name = get_bloginfo('name'); $wp_title = wp_title($sep, 0, 'right'); if (is_category() || is_tag()){ $out = $match[1] ? $match[1].$sep : ((is_tag())?"Метка:":"Категория:")." $wp_title"; } elseif (is_singular()) $out = ($free_title = get_post_meta($post->ID, "title", true)) ? $free_title.$sep : $wp_title; elseif (is_author()) $out = "Записи автора $wp_title"; elseif (is_day() || is_month()) $out = "Архив за $wp_title"; elseif (is_year()) $out = "Архив за $wp_title"; elseif (is_search()) $out = 'Результаты поиска по запросу: '. strip_tags($_GET['s']) . $sep; elseif (is_404()) $out = "Ошибка 404 - страница не существует".$sep.$wp_title; $out = trim($out.$bloginfo_name); if ($paged = get_query_var('paged')) $out = "$out (страница $paged)"; return print $out; }
Эта функция формирует текст для тега title:
- если это это архив постов определенной категории или постов, помеченных определенным тегом, то заголовок будет вида Категория: Название категории / Название блога (страница) – Описание блога
- если это это архив постов, помеченных определенным тегом, то заголовок будет вида Метка: Название тега / Название блога (страница) – Описание блога
- если это архив определенного автора, то заголовок будет вида Записи автора Автор / Название блога (страница) – Описание блога
- если это архив постов за определенный день, то заголовок будет вида Архив за День / Месяц / Год / Название блога (страница) – Описание блога
- если это архив постов за определенный месяц, то заголовок будет вида Архив за Месяц / Год / Название блога (страница) – Описание блога
- если это архив постов за определенный год, то заголовок будет вида Архив за Год / Название блога (страница) – Описание блога
- если это страница результатов поиска, то заголовок будет вида Результаты поиска по запросу: Поисковый запрос / Название блога (страница) – Описание блога
- если это страница ошибки 404, то заголовок будет вида Ошибка 404 – страница не существует / Страница не найдена / Название блога – Описание блога
Заголовок формируется из данных о странице. Чтобы он появился, нужно вставить следующий код в файл header.php между head и /head:
<title> - </title>
В функции один дополнительный параметр – / – это сепаратор, разделяющий разные данные о странице, записанные в одну строчку. Вы можете использовать и другой разделитель (часто используют тире, кавычки, стрелочки, и другие подобные знаки – существенной разницы между ними нет).
Здравствуйте! Спасибо за это решение.. Всё отлично работает, но не могли бы Вы подсказать каким образом удалить из title, сформированного для поста, название блога..
Название блога title страницы формируется строкой
Замените ее на
Проблема в том, что мне нужно убрать название блога только из одиночной записи..
Ну тогда нужно изменить весь код функции. Вот примерно так:
Тут для каждого вида страницы формируется свой title. Для постов он определяется условием is_singular.
Спасибо огромное.