Что такое динамические строки и зачем они нужны в GeneratePress
Когда вы работаете с темой GeneratePress на WordPress, часто возникает необходимость выводить на сайте не просто статический контент, а динамически изменяющийся текст, который зависит от разных условий — например, даты, пользователя, категории или других параметров. Динамические строки позволяют сделать сайт более интерактивным и адаптированным под посетителя.
Для пользователей GeneratePress это особенно актуально, так как тема достаточно легкая и гибкая, но не содержит встроенного сложного динамического контента. В этой статье мы разберем, как добавить динамические строки в шаблоны GeneratePress, используя хуки и фильтры темы, а также с помощью популярных плагинов.
Использование хуков GeneratePress для вывода динамического текста
GeneratePress предоставляет множество хуков, благодаря которым можно вставлять дополнительный контент в нужные места сайта. Чтобы добавить динамическую строку, можно использовать хук generate_before_header или generate_after_header для вывода текста до или после шапки сайта.
Пример функции, которая выводит динамическую строку с приветствием в зависимости от времени суток:
function generatepress_dynamic_greeting() {
$hour = (int) date('H');
if ($hour < 12) {
$greeting = 'Доброе утро!';
} elseif ($hour < 18) {
$greeting = 'Добрый день!';
} else {
$greeting = 'Добрый вечер!';
}
echo '<div class="dynamic-greeting">' . esc_html($greeting) . '</div>';
}
add_action('generate_before_header', 'generatepress_dynamic_greeting');Этот код вставит в шапку сайта приветствие, которое меняется в зависимости от времени суток. Такой подход можно расширять для любых условий и контента.
Как подключить кастомный код в GeneratePress
Лучше всего добавлять подобные функции в дочернюю тему GeneratePress или использовать плагин для пользовательских сниппетов, например, Code Snippets. Это позволит не потерять изменения при обновлении темы.
Для создания дочерней темы создайте папку generatepress-child и добавьте functions.php с вашим кодом. Затем активируйте дочернюю тему в админке WordPress.
Использование плагинов для динамического контента в GeneratePress
Если вы не хотите писать код самостоятельно, можно воспользоваться плагинами, которые добавляют возможность динамически выводить строки и переменные.
Рассмотрим популярные плагины:
- Shortcode Variables — позволяет создавать пользовательские шорткоды с переменными, например, [current_date] или [user_name].
- Dynamic Content for Elementor — если вы используете Elementor совместно с GeneratePress, этот плагин значительно расширяет возможности динамического контента.
- WP Date Remover — для динамического изменения дат и временных меток на сайте.
Пример использования Shortcode Variables для вывода текущей даты в любой части сайта:
[current_date format="d.m.Y"]Для интеграции с GeneratePress вы можете добавить этот шорткод в виджеты, меню или шаблоны через хуки.
Создание собственного плагина для динамических строк в GeneratePress
Если вы хотите контролировать процесс полностью, можно написать небольшой плагин, который будет выводить динамические строки в нужных местах.
Пример простого плагина, который выводит приветствие и имя пользователя, если он залогинен:
/*
Plugin Name: GeneratePress Dynamic Strings
Description: Выводит динамические строки в GeneratePress
Version: 1.0
Author: generatepress.ru
*/
function gp_dynamic_string_greeting() {
if (is_user_logged_in()) {
$current_user = wp_get_current_user();
$greeting = 'Привет, ' . esc_html($current_user->display_name) . '!';
} else {
$greeting = 'Здравствуйте, гость!';
}
echo '<div class="gp-dynamic-greeting">' . $greeting . '</div>';
}
add_action('generate_after_header', 'gp_dynamic_string_greeting');Такой плагин можно расширять, добавляя новые динамические строки и условия их вывода.
Как активировать и использовать плагин
1. Создайте папку generatepress-dynamic-strings в wp-content/plugins.
2. Создайте файл generatepress-dynamic-strings.php с кодом выше.
3. Активируйте плагин в админке WordPress.
4. Посмотрите результат на сайте — приветствие появится после шапки.
Другие примеры динамических строк и их применение
Динамические строки полезны не только для приветствий. Вот несколько идей:
- Вывод текущей акции или скидки с автоматическим обновлением по дате.
- Показывать разные сообщения для новых и возвращающихся посетителей.
- Подставлять имя пользователя в приветствия и отзывы.
- Динамически менять текст кнопок, в зависимости от времени суток или дня недели.
Например, для вывода текущей акции можно использовать следующий код:
function gp_dynamic_sale_notice() {
$today = date('Y-m-d');
$sale_start = '2024-05-01';
$sale_end = '2024-05-10';
if ($today >= $sale_start && $today <= $sale_end) {
echo '<div class="sale-notice">Внимание! Акция до 10 мая - скидка 20%</div>';
}
}
add_action('generate_before_footer', 'gp_dynamic_sale_notice');Такой блок будет автоматически появляться в нужный период без вашего вмешательства.