Conținut de marketing

WordPress: Adăugați o clasă personalizată dacă postarea a fost publicată astăzi

Primesc în mod constant solicitări de la clienții noștri pentru personalizări pe care nici măcar nu le-am luat în considerare. Recent, am avut un client care dorea un stil personalizat pentru postările lor publicate astăzi astfel încât acestea să poată fi evidențiate utilizând o clasă CSS personalizată. Au vrut să încorporeze clasa în paginile arhivei, rezultatele căutării și șabloanele de pagină cu o singură postare a temei lor copil.

Pentru a personaliza <div> clasă într-un șablon WordPress în funcție de faptul dacă postarea a fost scrisă astăzi, puteți utiliza PHP și WordPress etichete șablon în fișierul șablon. Iată un exemplu despre cum puteți realiza acest lucru:

<?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>

În acest fragment de cod, comparăm data postării ($post_date) cu data curentă ($current_date). Dacă se potrivesc, atribuim o clasă personalizată (custom-today) la $custom_class variabil; în caz contrar, rămâne gol. A inlocui 'your-existing-classes' cu clasele existente pe care doriți să le păstrați <div>. Adăugați orice cursuri suplimentare dorite și salvați fișierul șablon.

Acum, când vizitezi o postare care a fost scrisă astăzi, <div> elementul va avea clasa suplimentară custom-today, permițându-vă să-l stilați diferit folosind CSS. Iată un exemplu:

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

Instanțe multiple de-a lungul temei dvs

Dacă doriți să utilizați această abordare pentru mai multe fișiere de temă, puteți adăuga o funcție personalizată la fișierul functions.php al temei copilului dvs.:

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');

Apoi, în cadrul fiecărui șablon, puteți doar să adăugați post_class:

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

Încorporarea fusurilor orare

Exemplul de mai sus adaugă clasa în funcție de ora și fusul orar al serverului dvs. WordPress, nu de ora și fusul orar al vizitatorului. Dacă ai vrut să fie inclusă fusul orar al utilizatorului... iată:

<?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>

Memorarea în cache poate afecta comportamentul așteptat atunci când implementați funcționalități dinamice, cum ar fi personalizarea elementelor pe baza datei curente sau a fusului orar al vizitatorului. Memorarea în cache ajută la îmbunătățirea performanței site-ului web prin stocarea versiunilor statice ale paginilor web sau ale conținutului pentru a le difuza mai rapid. Cu toate acestea, poate cauza probleme atunci când conținutul trebuie actualizat dinamic.

Douglas Karr

Douglas Karr este CMO al OpenINSIGHTS și fondatorul Martech Zone. Douglas a ajutat zeci de startup-uri de succes MarTech, a ajutat la due diligence de peste 5 miliarde de dolari în achiziții și investiții Martech și continuă să asiste companiile în implementarea și automatizarea strategiilor lor de vânzări și marketing. Douglas este un expert în transformare digitală recunoscut la nivel internațional și expert și vorbitor MarTech. Douglas este, de asemenea, un autor publicat al unui ghid pentru Dummie și al unei cărți de conducere în afaceri.

Articole pe aceeaşi temă

Înapoi la butonul de sus
Închide

Blocarea reclamelor a fost detectată

Martech Zone este în măsură să vă furnizeze acest conținut fără costuri, deoarece monetizăm site-ul nostru prin venituri din reclame, linkuri afiliate și sponsorizări. Am aprecia dacă ați elimina dispozitivul de blocare a reclamelor pe măsură ce vizualizați site-ul nostru.