در آموزش قبلی در خصوص این که زمینه دلخواه وردپرس چیست و چگونه می تواند به ما کمک کند اطلاعات اضافی محتوا را به محتوای اصلی خود اضافه کنیم.اما سوالی که به وجود می آید این است که چطور می توانیم زمینه های دلخواه را به شکلی شرطی سازی کنیم که در شرایط مختلف عملکرد های مختلفی را نمایش بدهد. برای شرطی کردن زمینه دلخواه در قالب سایت وردپرس، میتوان از تابعهای شرطی وردپرس استفاده کرد. این توابع به شما کمک می کند که بر اساس شرایط خاصی مانند نوع نوشته، دستهبندی، برچسب و غیره، نمایش یا عدم نمایش زمینههای دلخواه را کنترل کنید.

زمینه دلخواه در وردپرس به شما اجازه میدهد تا اطلاعات اضافی را به هر پست اضافه کنید. این اطلاعات میتواند شامل متن، اعداد و یا هر چیز دیگری باشد.معروف ترین آن لینک دانلود فایل هایی است که در انتهای هر مطلب قرار میگیرد.
شرطی کردن زمینه دلخواه وردپرس در قالب سایت
شرطی کردن زمینه دلخواه این امکان را به ما کمک می کند که محتوای خود را بر اساس شرایط مشخص، فقط در بخشهایی از سایت نمایش دهیم. این کار میتواند به ما کمک کند تا قالبهای دینامیکتر و محتوای منحصربهفردتری را ایجاد کنیم.
روشهای شرطی کردن زمینه دلخواه در قالب وردپرس
برای شرطی کردن زمینه دلخواه وردپرس، میتوانید از توابع شرطی و همچنین توابع مرتبط با زمینههای دلخواه استفاده کنید.
استفاده از تابع ()get_post_meta
تابع ()get_post_meta در وردپرس برای دریافت مقادیر زمینه دلخواه استفاده میشود. این تابع سه ورودی دارد:
- شناسه پست (Post ID)
- نام زمینه دلخواه
- مقدار تکی یا چندتایی (به طور پیشفرض true که مقدار تکی را بازمیگرداند)
مثال:
$value = get_post_meta(get_the_ID(), 'نام فیلد زمینه دلخواه شما', true);
ترکیب ()get_post_meta با توابع شرطی
میتوانید با ترکیب توابع شرطی مانند if با ()get_post_meta , محتوای شرطی ایجاد کنید.
مثال:
$value = get_post_meta(get_the_ID(), 'نام فیلد زمینه دلخواه شما', true);
if ($value) {
// اگر value مقدار داشت محتوای این بدنه چاپ می شود.
echo '<p>مقدار زمینه دلخواه: ' . esc_html($value) . '</p>';
} else {
// اگر value مقدار نداشت محتوای این بدنه چاپ می شود.
echo '<p>زمینه دلخواه موجود نیست.</p>';
}
در تابع بالا ما مقدار زمینه دلخواه را در متغیر $value میریزیم و با استفاده از شرط if چک می کنیم که اگر $value مقدار داشت یک اتفاق بیفتد و در بدنه else مشخص کرده ایم که در صورت مقدار نداشتن و به اصطلاح false بودن متغیر $value،محتوای بلاک else چاپ شود.شما می توانید در بدنه if وelse توابع و زمینه دلخواه خود را قرار بدهید.
شرطی کردن بر اساس نوع نوشته
میتوانید نمایش زمینه دلخواه را بر اساس نوع نوشته (مانند برگه، پست یا یک نوع پست سفارشی) محدود و شرط بندی کنید.
if (is_single() && get_post_meta(get_the_ID(), 'نام فیلد زمینه دلخواه شما', true)) {
// در صورتی که صفحه شما یک نوشته وردپرس باشد محتوای این بدنه نمایش داده می شود.
echo '<p>این یک نوشته است و زمینه دلخواه دارد.</p>';
}
تابع بالا بیان می کند که اگر پست تایپ موجود،یک نوشته بود و این نوشته یک زمینه دلخواه داشت،عبارت echo ‘<p>این یک نوشته است و زمینه دلخواه دارد.</p>’; را چاپ کن.
شما می توانید به جای این عبارت بالا محتوای زمینه دلخواه خود را نمایش بدهید:
if (is_single() && get_post_meta(get_the_ID(), 'نام فیلد زمینه دلخواه شما', true)) {
<a href="<?php echo get_post_meta($post->ID, 'نام فیلد زمینه دلخواه شما',true); ?>"> دانلود کنید </a>
}
نمونه کاربردی شرطی کردن زمینه دلخواه
فرض کنید که میخواهید یک زمینه دلخواه به نام “پیشنهاد ویژه” فقط در پستهایی که در دسته “فروش ویژه” قرار دارند در قالب وردپرس خود نمایش داده دهید:
کد نمونه:
if (in_category('فروش ویژه') && get_post_meta(get_the_ID(), 'special_offer', true)) {
echo '<div class="special-offer">' . esc_html(get_post_meta(get_the_ID(), 'special_offer', true)) . '</div>';
}
بهبود کد با استفاده از توابع سفارشی
میتوانید کد خود را با ایجاد توابع سفارشی مرتبتر کنید. مثلاً:
function show_special_offer() {
if (in_category('فروش ویژه') && get_post_meta(get_the_ID(), 'special_offer', true)) {
echo '<div class="special-offer">' . esc_html(get_post_meta(get_the_ID(), 'special_offer', true)) . '</div>';
}
}
add_action('the_content', 'show_special_offer');
نتیجهگیری
شرطی کردن زمینههای دلخواه در قالب وردپرس به شما این امکان را میدهد که محتوای سایت خود را به شکلی دینامیک و منعطفتر نمایش دهید. با استفاده از این آموزش یاد گرفتیم چگونه محتوای خود را سفارشی کنیم و در شرایط مختلف این محتوا را مدیریت کنیم.خوشحال میشم نظرات و سوالات خودتان را در بخش نظرات این بخش بیان کنید.پیروز و موفق باشید.