Я постоянно получаю запросы от наших клиентов на настройки, которые я даже не рассматривал. Недавно у нас был клиент, который хотел индивидуальный стиль для своих опубликованных сообщений. сегодня поэтому их можно выделить с помощью пользовательского класса 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>
Кэширование может повлиять на прогностическое поведение за счет реализации динамических функций, таких как настройка элементов на основе текущей даты или часового пояса посетителя. Кэширование помогает повысить производительность веб-сайта, сохраняя статические версии веб-страниц или контента для их более быстрого обслуживания. Однако это может вызвать проблемы, если содержимое необходимо обновлять динамически.