Я постоянно получаю запросы от наших клиентов на настройки, которые я даже не рассматривал. Недавно у нас был клиент, который хотел индивидуальный стиль для своих опубликованных сообщений. сегодня поэтому их можно выделить с помощью пользовательского класса CSS. Они хотели включить урок в архивные страницы, результаты поиска и шаблоны отдельных страниц сообщений, которые соответствуют теме их детей.

Настроить <div> class в шаблоне WordPress, в зависимости от того, была ли запись написана сегодня, вы можете использовать теги шаблонов PHP и WordPress в файле шаблона. Вот пример того, как этого добиться:

<?php
// Get the current post's date
$post_date = get_the_date('Y-m-d');

// Get today's date
$current_date = date('Y-m-d');

// Check if the post was written today
if ($post_date === $current_date) {
    $today_class = 'custom-today';
} else {
    $today_class = '';
}
?>

<div class="your-existing-classes <?php echo $today_class; ?>">
    <!-- Your post content goes here -->
</div>

В этом фрагменте кода мы сравниваем дату публикации ($post_date) с текущей датой ($current_date). Если они совпадают, мы назначаем пользовательский класс (custom-today) к $custom_class переменная; в противном случае он остается пустым. Заменять 'your-existing-classes' с существующими классами, которые вы хотите сохранить <div>. Добавьте любые дополнительные классы, которые вы хотите, и сохраните файл шаблона.

Теперь, когда вы посещаете пост, который был написан сегодня, <div> элемент будет иметь дополнительный класс custom-today, что позволяет вам по-разному стилизовать его с помощью CSS. Вот пример:

.custom-today {
background-color: yellow;
}

Несколько экземпляров в вашей теме

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

function add_custom_class_based_on_date($classes) {
    // Get the current post's date
    $post_date = get_the_date('Y-m-d');

    // Get today's date
    $current_date = date('Y-m-d');

    // Check if the post was written today
    if ($post_date === $current_date) {
        $classes[] = 'custom-today';
    }

    return $classes;
}
add_filter('post_class', 'add_custom_class_based_on_date');

Затем вы можете просто добавить в каждый шаблон post_class:

<div <?php post_class(); ?>>
    <!-- Your post content goes here -->
</div>

Включая часовые пояса

В приведенном выше примере класс добавляется на основе времени и часового пояса вашего сервера WordPress, а не времени и часового пояса посетителя. Если вы хотите, чтобы часовой пояс пользователя был включен…

<?php
// Get the current post's date and convert it to the visitor's timezone
$post_date = get_the_date('Y-m-d');
$post_date_timezone = get_post_time('O');
$post_date_timezone_offset = substr($post_date_timezone, 0, 3) * 3600 + substr($post_date_timezone, 3, 2) * 60;

$current_date = date('Y-m-d', current_time('timestamp', false));
$current_date_timezone = get_option('timezone_string');
$current_date_timezone_offset = get_option('gmt_offset') * 3600;

// Calculate the offset between the post date and the current date based on timezones
$timezone_offset = $current_date_timezone_offset - $post_date_timezone_offset;

// Adjust the post date by the timezone offset
$post_date_adjusted = date('Y-m-d', strtotime($post_date) + $timezone_offset);

// Check if the post was written today
if ($post_date_adjusted === $current_date) {
    $today_class = 'custom-today';
} else {
    $today_class = '';
}
?>

<div class="your-existing-classes <?php echo $today_class; ?>">
    <!-- Your post content goes here -->
</div>

Кэширование может повлиять на прогностическое поведение за счет реализации динамических функций, таких как настройка элементов на основе текущей даты или часового пояса посетителя. Кэширование помогает повысить производительность веб-сайта, сохраняя статические версии веб-страниц или контента для их более быстрого обслуживания. Однако это может вызвать проблемы, если содержимое необходимо обновлять динамически.

ЧИТАТЬ  Используйте кредиты на подписку на рекламу на сумму более 3000 долларов США Bootstrap и на продажу | зона Мартех

Source