
WordPress: Егер пост бүгін жарияланған болса, пайдаланушы класын қосыңыз
Мен клиенттерімізден мен ешқашан қарастырмаған теңшелімдерге үнемі сұраулар алып отырамын. Жақында бізде жарияланымдары үшін арнайы сәндеуді қалайтын клиент болды бүгін олар реттелетін CSS сыныбын пайдалану арқылы бөлектелуі мүмкін. Олар сыныпты мұрағат беттеріне, іздеу нәтижелеріне және өздерінің еншілес тақырыбының бір хабарлама беті үлгілеріне енгізгісі келді.
теңшеу үшін <div>
Посттың бүгін жазылған-жазылғанына негізделген 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>
Ағымдағы күнге немесе келушінің уақыт белдеуіне негізделген элементтерді теңшеу сияқты динамикалық функционалдылықты енгізу кезінде кэштеу күтілетін әрекетке әсер етуі мүмкін. Кэштеу веб-беттердің статикалық нұсқаларын немесе оларға жылдам қызмет көрсету үшін мазмұнды сақтау арқылы веб-сайт жұмысын жақсартуға көмектеседі. Дегенмен, ол мазмұнды динамикалық түрде жаңарту қажет болғанда мәселелер тудыруы мүмкін.
Эй Даг. Бұл шынымен тегіс емес!
Бүйірлік ескерту, түсініктеме қосу түймесінің үстіндегі «жазылыңыз» құсбелгісін жылжытуды ұсынамын ... бұл маған пайдаланушыларға сәл ыңғайлы.
Жаңа күнтізбелік графика мен CSS-те жақсы жұмыс.
Рахмет Шон.
Құсбелгінің орналасуы мақсатқа сай. Оны басқа өрістерден тыс қою оны және басқа тығыз орналасқан өрістер арасында алшақтықты жасайды. Оны түйменің жанына қою арқылы ол таңдауды әрекеттің қасына қояды, бұл шын мәнінде көбірек адамдардың пікірде өз ойларын аяқтап, жіберуге көшкен сайын оны өткізіп жіберуі мүмкін.
Жетіспейтін бір нәрсе - тиісті қойындыларды тоқтату. Мен мұны түзетемін.
Жаңа күн болғандықтан, сіздің кодыңызда қате бар деп ойлаймын. Күнтізбе белгішесінде бүгін де айтылады, бірақ іс жүзінде ертең қазір 🙂
Посттың соңғы сөйлемінде мәселе айтылады - мен GMT-ке бейімделуім керек. Мен сондай-ақ кэштеуді реттеуім керек, сондықтан мен 2 таспен 1 құсты өлтіруге тырысамын.
Жарайды, мен сіздің GMT-ге бейімделу туралы ойлағаныңызды түсінбедім.
Сіз мр код маймылының үстінде екеніңізге сенімдімін🙂, бірақ мүмкін сіздің серверіңіздің уақытына қарап 'if' мәлімдемесін жасай аласыз ба?
егер сервердің күні / уақыты кейінгі күнмен / уақытпен салыстырғанда X-ге тең болса, X кескінін немесе осыған ұқсас нәрсені көрсетеді.