ACF: کد نمایش و دستورات شرطی زمینه دلخواه وردپرس

مسیح دیندار
مدیریت
عضو شده: 2021-04-12 14:23:35
2021-05-17 10:32:51

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

بعد از نصب و فعالسازی، در پیشخوان، سایدبار مدیریت، گزینه زمینه دلخواه رو کلیک کنید و وارد صفحه زمینه های دلخواه بشید.

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

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

 

کد عادی دریافت و نمایش مقادیر زمینه دلخواه

به طور کلی مقدار زمینه دلخواه رو میتونید با این کد در قالبتون نمایش بدید.

<?php the_sub_field('fieldname'); ?>

موقع ساختن زمینه دلخواه، شما یک "نام نمایشی" وارد می کنید که در صفحه افزودن مطلب جدید نمایش داده میشه و یک "شناسه" که باید به صورت انگلیسی وارد کنید. این شناسه رو ما باهاش مقادیر رو دریافت و داخل سایت نشون میدیم. در کد بالا بجای fieldname باید شناسه ای که برای زمینه دلخواهتون در نظر گرفتید رو وارد کنید.

برای هر زمینه دلخواه و فیلد، باید یکی از کدهای مثل بالا رو استفاده کنید و شناسه رو تغییر بدید.

کد بالا رو بهتره در فایل ادامه مطلب (معمولا فایل single.php قالب) استفاده کنید.

 

دستور شرطی عادی برای بررسی خالی بودن مقدار زمینه دلخواه

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

زمانی که برای اون زمینه دلخواه، عناصری مثل div و ... کدنویسی کرده باشید، زمانی که زمینه دلخواه هم وارد نکنید طبیعتا اون عناصر همچنان نمایش داده میشه پس بهتره با یک دستور شرطی تعیین کنیم که اگه اون زمینه دلخواه خالی بود، کلا اون قسمت مورد نظرمون مخفی باشه.

طبق کد بالا که دادم، فرض می کنیم که برای این زمینه دلخواه چندتا المنت دیگه هم کدنویسی کردیم که به این صورت می تونید دستور شرطی رو استفاده کنیم:

<?php if( get_field( "fieldname" ) ): ?>

<div class="talkina">
<a class="download" title="دانلود کنید" target="_blank" href="<?php the_field( "fieldname" ); ?>">دانلود با لینک مستقیم</a>
</div>

<?php endif; ?>

همونطور که متوجه شدید، باید در خط اول، بجای fieldname در واقع شناسه همون زمینه دلخواه رو وارد می کنیم. به این ترتیب در صورتی که مقداری برای اون زمینه وارد نکرده باشید، در صفحه ادامه مطلب سایتتون مخفی میشه.

 

دستور شرطی و کد نمایش فیلد Repeater

فیلدهای ریپیتر / تکرار شونده یا Repeater نوع زمینه دلخواه هست که به صورت جدولی ایجاد میشن. در صفحه مدیریت زمینه های دلخواه، یک ردیف بیشتر تعیین نمی کنید ولی در صفحه نوشتن مطلب جدید، می تونید ردیف های بی نهایتی در نظر بگیرید. برای نمایش چنین زمینه دلخواهی باید از این کد استفاده کنید:

<?php if( get_field( "fieldgroup" ) ): ?>
	<?php if( have_rows('fieldrow') ): ?>
	<?php while( have_rows('fieldrow') ): the_row(); ?>

		<a class="previewbt" title="مشاهده پیوست" target="_blank" href="<?php the_sub_field('field_one'); ?>"><?php the_sub_field('field_two'); ?></a>
			
	<?php endwhile; ?>
	<?php endif; ?>
<?php endif; ?>

بر اساس کد بالا، شناسه گروه زمینه دلخواهی که برای این نوع زمینه ایجاد کردید، رو بجای fieldgroup جایگزین کنید. بجای fieldrow هم شناسه سطری که برای این زمینه در نظر گرفتید رو وارد کنید.

و بجای field_one و field_two هم شناسه هایی که برای زمینه دلخواه اصلی وارد کردید رو جایگزین کنید. به این ترتیب هر ردیفی که اضافه کنید، به خوبی با این کد دریافت و نمایش داده میشه.