WordPress: Aldonu Propran Klason Se La Afiŝo Estis Publikigita Hodiaŭ
Mi konstante ricevas petojn de niaj klientoj pri personigoj, kiujn mi neniam eĉ pripensis. Lastatempe, ni havis klienton, kiu volis publikigi iun kutiman stilon por siaj afiŝoj hodiaŭ tiel ke ili povus esti elstarigitaj utiligante kutiman CSS-klason. Ili volis korpigi la klason en arkivaj paĝoj, serĉrezultoj kaj ununuraj afiŝo-paĝaj ŝablonoj de sia infana temo.
Por personecigi la <div>
klaso en WordPress ŝablono bazita sur ĉu la afiŝo estis skribita hodiaŭ, vi povas uzi PHP kaj WordPress ŝablonaj etikedoj en via ŝablondosiero. Jen ekzemplo de kiel vi povas atingi ĉi tion:
<?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>
En ĉi tiu koda fragmento, ni komparas la daton de la afiŝo ($post_date
) kun la aktuala dato ($current_date
). Se ili kongruas, ni atribuas kutiman klason (custom-today
) al la $custom_class
variablo; alie, ĝi restas malplena. Anstataŭigi 'your-existing-classes'
kun la ekzistantaj klasoj kiujn vi volas konservi sur la <div>
. Aldonu iujn ajn kromajn klasojn, kiujn vi deziras, kaj konservu la ŝablondosieron.
Nun, kiam vi vizitas afiŝon, kiu estis skribita hodiaŭ, la <div>
elemento havos la aldonan klason custom-today
, permesante al vi stiligi ĝin alimaniere uzante CSS. Jen ekzemplo:
.custom-today {
background-color: yellow;
}
Multoblaj Okazoj Tra Via Temo
Se vi volis uzi ĉi tiun aliron por pluraj temodosieroj, vi povas aldoni kutiman funkcion al la functions.php-dosiero de via infana temo:
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');
Tiam, ene de ĉiu ŝablono, vi povas simple aldoni post_class
:
<div <?php post_class(); ?>>
<!-- Your post content goes here -->
</div>
Enkorpigante Horzonojn
La supra ekzemplo aldonas la klason bazitan sur la horo kaj horzono de via WordPress-servilo, ne la tempo kaj horzono de la vizitanto. Se vi volis inkluzivi la horzonon de la uzanto... jen vi iras:
<?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>
Kaŝmemoro povas influi la atendatan konduton dum efektivigado de dinamika funkcieco kiel personigo de elementoj bazitaj sur la aktuala dato aŭ la horzono de vizitanto. Kaŝmemoro helpas plibonigi retejan rendimenton stokante senmovajn versiojn de retpaĝoj aŭ enhavo por servi ilin pli rapide. Tamen, ĝi povas kaŭzi problemojn kiam la enhavo devas esti dinamike ĝisdatigita.