Здравствуйте, дамы и господа, в этой статье расскажу о том, как сделать шорткоды, которые позволят в Title и Description Rank Math, а также в заголовках статей (H1) WordPress выводить автоматически следующий год, и они будут меняться при изменении текущего года без вашего вмешательства. Также этот шорткод можно добавлять и тело статьи.
Например, вы хотите, чтобы в 2024 году в заголовке автоматически выводился 2025 год. Если, вы пишете статью о том, что нужно будет делать в следующем году. И статья будет актуальна и потом, даже без изменений в контенте, подобная фишка может вам пригодиться. По крайней мере, вам не придётся менять год самостоятельно.
Заметьте, пример с годами, который разместил выше, работает именно с помощью шорткодов, которые вас научу создавать. Давайте начнём.
Делаем автоматический вывод следующего года в заголовке (H1) и теле контента в WordPress
Итак, нам нужно реализовать вывод года в стиле «год +1». То бишь, если у нас идёт 2024 год, то нам нужно сделать, чтобы отображался 2025 год. Даже если вы желаете реализовать это только в Rank Math, то вам всё равно придётся сделать то, что написано здесь.
Итак, для начала вам понадобится дочерняя тема или собственный плагин. Конечно, можно код добавить прямо в functions.php, но при любом обновлении он слетит. И даже добавлять в дочернюю тему не стоит. Любой код, который должен работать независимо от выбора темы, лучше добавить в кастомный плагин, чтобы смена темы на данный код не влияла.
Я рассказывал о том, как автоматически выводить текущий год в H1, title и description, здесь принцип тот же. Только к году нам нужно прибавить +1.
Варианта 2:
- Используем префиксный инкремент, который всегда будет прибавлять единицу.
- Используем операцию сложения формата «текущий год + 1».
Что первый способ, что второй одинаково хороши для данной задачи. Разницы нет. С префиксным инкрементом могут быть проблемы только в том случае, если год станет неопределённым. Например, из-за сбоя на сервере. Но проблемы с работой инкремента тогда вас будут волновать в последнюю очередь. Объяснять в рамках статьи это не буду.
Итак, код для первого варианта:
add_shortcode( 'yearone' , 'current_year_one' );
function current_year_one() {
$year = date("Y");
$yearone = (++$year);
return "$yearone";
}
add_filter( 'the_title', 'do_shortcode' );
Фактически в данном случае мы объявили переменную, которая отвечает за вывод кода, а потом с помощью префиксного инкремента прибавили к этому значению единицу и вернули новую переменную.
Если вам не нравится данный способ или он по какой-то причине не работает, то можете использовать такой вариант:
add_shortcode( 'yearone' , 'current_year_one' );
function current_year_one() {
$year = date("Y");
$yearone = ($year + 1);
return "$yearone";
}
add_filter( 'the_title', 'do_shortcode' );
Здесь мы уже используем обычную операцию сложения в формате «год +1» и спокойно выводим следующий год.
А теперь вы можете в H1 или в контент добавить такой шорткод:
[yearone]
Эти два варианта вполне решают вашу задачу. Ну а если вам нужно сделать формат «текущий год + 5 лет»? Тогда просто видоизменяем тот код, который размести выше.
add_shortcode( 'yearone' , 'current_year_one' );
function current_year_one() {
$year = date("Y");
$yearone = ($year + 5);
return "$yearone";
}
add_filter( 'the_title', 'do_shortcode' );
Как видите, в переменную:
$yearone = ($year + 5);
Я просто добавил 5 лет вместо одного. Вы можете указывать любой год, который вам удобен.
И добавлю бонус для тех, кто желает показать свою ветреность и непостоянство. Мы будем выводить рандомный год. Для этого добавляем такой код:
add_shortcode( 'whatyear' , 'current_year_one' );
function current_year_one() {
$year = date("Y");
$randomyear = rand(1 , 100);
$whatyear = ($year + $randomyear);
return "$whatyear";
}
add_filter( 'the_title', 'do_shortcode' );
При каждой перезагрузке страницы к текущему году будет прибавляться от 1 до 100 лет. С помощью переменной year мы просто задаём начальным числом текущий год в качестве нижней планки. А дальше уже будет к году прибавляться рандомный год от 1 до 100.
Если хотите полный рандом, то в строке:
$randomyear = rand( );
Просто уберите все числа. Готово, теперь ваш год от 2024 до 264, таким образом вы сможете удивить и посетителей, и поисковые системы.
А в статьи, H1, Title или Description добавляйте такой шорткод:
[whatyear]
Не забудьте добавить эту страницу в исключения кеширования. Иначе все будут видеть последний закешированный результат.
Ладно, пошутили и хватит. Теперь давайте настроим отображение следующего года в Rank Math.
Автоматическое добавление следующего года в title и description Rank Math
Итак, чтобы в title и description Rank Math добавить автоматический вывод года в формате «текущий год +1» да и любой другой вариант отображения года, кроме текущего, нам нужно, чтобы наши шорткоды отображались в плагине Rank Math. Изначально это не работает.
Для того, чтобы всё заработало, нам нужно в собственный плагин или functions.php дочерней темы добавить новый хук:
add_filter(
'rank_math/frontend/title',
function ( $title ) {
return do_shortcode( $title );}
);
add_filter( 'the_title', 'do_shortcode' );
Этот код позволяет плагину Rank Math анализировать шорткоды, соответственно, плагин сможет их отображать.
И теперь мы можем просто добавлять шорткоды в title в плагине Rank Math.
Как видите, проблем никаких нет, сложностей практически никаких нет.
Если вам нужна аналогичная функция для описания (description), тогда добавляем аналогичный код, но для описания:
add_filter(
'rank_math/frontend/description',
function ( $description ) {
return do_shortcode( $description );}
);
add_filter( 'the_title', 'do_shortcode' );
Готово, теперь можете просто добавлять свои шорткоды, которые создавали чуть раньше, в description Rank Math.
Сделать автоматическое отображение не текущего года вполне реально
И даже особо потеть не придётся. Вам просто нужно скопировать код и добавить его себе на сайт. Кстати, с WooCommerce это тоже работает.
Надеюсь, эта статья вам помогла, и вы сумели реализовать свою задумку. На этом с вами прощаюсь, желаю успехов и всего доброго!