mojwp.ru
Назад

Всегда актуальный год в заголовке статьи и полях SEO Title и Description

Опубликовано: 26.02.2015
23
3091

Занимаясь раскруткой интернет-магазина по продаже женских сумок, я попросил прогера (самописная CMS) в своем время добавить шорткод актуального года. Т.е. чтобы можно было делать статьи вида "Сумки Versace актуальный_год", где вместо актуальный_год подставлялся бы действительно актуальный год и выходило "Сумки Versace 2015" и т.д.

На WordPress как-то ни разу не приходилось сталкиваться с потребностью в подобном. Но сегодня с Петей решали одну проблему и пришло осознание, что всегда актуальный год будет очень кстати для всевозможных статейников и для тех же ИМ на WordPress.

Актуальный год должен быть в:

  • Заголовке статьи.
  • В теле статьи (подзаголовки или просто по тексту).
  • В полях meta SEO Title и Description.

Актуальный год в meta SEO Title и Description

Начнем с самого простого. Для реализации поставленной задачи достаточно прописать %%currentyear%% в нужном поле, после чего плагин WordPress SEO by Yoast подставит актуальный год, который в 00.00 ч 1 января каждого года будет ставить новый актуальный год.

Всегда актуальный год в заголовке статьи, SEO Title и Description
Клик для увеличения

Если еще не используете WordPress SEO by Yoast - быстро ставьте его. На данный момент я считаю его лучшим среди себе подобных.

Вот еще о нем полезный материал от меня:

Актуальный год в теле статьи

Для решения данной задачи создадим простой шорткод. Откроем файл functions.php и сразу после <?php переходим на новую строку, где вставляем это кусок кода:

/* шорткод актуальный год */
function year_shortcode() {
	$year = date('Y');
	return $year;
}
add_shortcode('year', 'year_shortcode');

Теперь актуальный год в теле статьи (в тех же подзаголовках) можно будет вывести шорткодом [year]. Просто перейдите в режим "Текст" в любой записи.

Screenshot_5

Актуальный год в заголовке статьи

Осталось как то выводить актуальный год в заголовке статьи, который у вас обычно в теге h1.

Решается все довольно просто: включим поддержку шорткодов в заголовке. Всталяем так же в functions.php следующий код:

/*шорткод в заголовке статьи */
function add_shortcode_to_title( $title ){
        return do_shortcode($title);
    }
    add_filter( 'the_title', 'add_shortcode_to_title' );

Все. Теперь вы можете использовать все тот же шорткод [year] и в заголовке. Выглядеть это будет вот так:

шорткод в заголовке статьи
Клик для увеличения

Поздравляю. Вы освободили себя от рутинной работы менять год ежегодно.

Автор:
Виталий
Поделиться
Похожие записи
Черкани пару строк
  • Артём Черкасов
    Опубликовано: 01.03.2015 Ответить на сообщение

    Круто, Виталь, закинул в закладки, буду юзать!

  • Fringer
    Опубликовано: 04.03.2015 Ответить на сообщение

    А как на счет текущего месяца?
    Хотелось бы использовать допустим "март 2015".

    • Виталий
      Опубликовано: 06.03.2015 Ответить на сообщение

      В title %%currentmonth%%
      В шорткод перед Y добавьте букву m

  • Дмитрий
    Опубликовано: 13.03.2015 Ответить на сообщение

    Это как раз то, что нужно! Правда на месяца 2 бы пораньше) А то сейчас около сотни статей нужно переделывать под шорткод)

  • PromoRu
    Опубликовано: 27.03.2015 Ответить на сообщение

    отлично, спасибо очень важный пост!

  • templatelab
    Опубликовано: 12.05.2015 Ответить на сообщение

    Это в некотором роде вводит поисковик в заблуждения. Вполне возможно, что под такую примочку у них найдется нужный фильтр, если не сейчас, то позднее.
    Кроме того, сам пользователь может понять не соответствие информации, сократиться время просмотра материала и соответственно станут хуже поведенческие факторы.
    В добавок, существует ряд запросов пользователей, которые ищут не по текущей дате, а например прошлый или позапрошлый год.
    Оптимальный вариант - попросту актуализировать контент, добавляя новый. Например Сумки Versace 2013, Сумки Versace 2014, Сумки Versace 2015. Так естественным способом расшириться ядро запросов. А для ИМ лучшим решением добавить соответствующий фильтр для товара по годам.

    • Виталий
      Опубликовано: 12.05.2015 Ответить на сообщение

      1. По фильтру. За что? Это обычная смена текста раз в год или месяц, в зависимости от настроек. Равносильно ручной смене.
      2. Относительно пользователя и не соответствия информации. По всей видимости вы не до конца понимаете как такое применять. Я без проблем могу сделать посадочную страницу с текстом нужным и туда добавлять линки на позиции товаров актуальных при помощи признака (вывести теми же произвольными полями чекбокс)
      3. Кто ищет предыдущий период. Так и для этого можно сделать посадочную страницу и выводить товар. Здесь вопрос в организации вывода записей через те же чекбоксы.
      4. По вашему оптимальному варианту. Он вытекает из 3 пункта.

  • Евгений
    Опубликовано: 22.04.2016 Ответить на сообщение

    Виталик привет! А что если нужно сделать отсчет от года. Например: в статье указано "сайт работает уже 5 лет". На след год по идее должно стать 6 лет, но каждую ведь статью если их много через год не будешь корректировать. Как в такой ситуации сделать чтобы год добавлялся сам 5-6-7-8 лет и т.д?

  • Максим
    Опубликовано: 04.08.2017 Ответить на сообщение

    Спасибо! у меня в теле статьи заработало, а в h1 не работает. подскажите что делать?

  • Евгений
    Опубликовано: 17.08.2017 Ответить на сообщение

    Аналогично - в h1 не работает

  • Евгений
    Опубликовано: 17.08.2017 Ответить на сообщение

    Уточнение. Перестало работат ьв записях ,но работает на страницах. Странно, что там разработчики начудили, что хук не срабатывает в записях.

  • Дмитрий
    Опубликовано: 15.01.2020 Ответить на сообщение

    Благодарю. А как заставить шорткод работать в поле title плагина all in one seo?

    • Виталий
      Опубликовано: 15.01.2020 Ответить на сообщение

      Тут не подскажу, т.к. этим плагином уже лет 6-7 не пользуюсь.

  • Василий
    Опубликовано: 04.06.2020 Ответить на сообщение

    Виталий, при добавлении кода - вывод актуальной даты в теле статьи вордпрес выдает критическую ошибку на сайте. Этот способ больше не работает?

    • Виталий
      Опубликовано: 04.06.2020 Ответить на сообщение

      Добрый. Все работает. Это PHP и срока давности у него практически нет. Видимо что-то не правильно сделали. Перепроверьте.

  • Алексей
    Опубликовано: 24.07.2020 Ответить на сообщение

    у меня этот фильтр приводит к ошибке 502, хотя остальные кастомные функции в functions.php работают без проблем

    • Алексей
      Опубликовано: 24.07.2020 Ответить на сообщение

      если шорткоды зареганы самостоятельно то все ок, а если через плагин shortcodes то ошибка) че то конфликтует

  • Anna Cap
    Опубликовано: 21.03.2021 Ответить на сообщение

    Здравствуйте! Спасибо за статью! Очень помогло решить вопрос с актуальными тайтлами!! Скажите как можно таким же образом вывести шорткод года в произвольном поле. Перепробовала уже все возможные варианты, в том числе пыталась модифицировать ваш код (вместо the_title писала: the_content, get_post_meta, get_post_meta($post->ID), get_post_meta($post->ID, 'NAME', true) ) ничего не работает(((

    • Виталий
      Опубликовано: 02.04.2021 Ответить на сообщение

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

  • Олег
    Опубликовано: 09.12.2021 Ответить на сообщение

    Спасибо, Виталий! Очень помогло в решении рутинных задач. Не подскажите, в футере @2012 - ( актуальный год), как вывести шорт кодом [year], чтобы то же на автомате был?

  • Виталий
    Опубликовано: 09.12.2021 Ответить на сообщение

    Добрый. Так [year] и есть шорткод.
    Быть может вам нужно в PHP вывести этот шорткод, чтобы работал?
    Тогда сразу выводите, без шорткода:

  • Олег
    Опубликовано: 09.12.2021 Ответить на сообщение

    Спасибо за наводку, посмотрю файлы темы.
    У меня немного по другому, есть поле для ввода копирайта вручную просто текстом. И если вводить в него шоркод [year], то он не читается. Хотя везде на сайте в статьях все работает.

  • Алексей
    Опубликовано: 03.01.2022 Ответить на сообщение

    Спасибо большое! Получилось с 1го раза. Идеальное решение!

Имя
Укажите своё имя и фамилию
E-mail
Без СПАМа, обещаем
Текст сообщения
Отправляя данную форму, вы соглашаетесь с политикой конфиденциальности и правилами нашего сайта.