انتخاب یک سطر Repeater در ACF بر اساس اندازه محصول در وردپرس

select repeater row based on product size wordpress
25 آبان 1403

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

در ACF، Repeater Fields به شما این امکان را می‌دهند که به یک پست، چندین سطر اطلاعاتی تکراری اضافه کنید. مثلاً می‌توانید برای هر محصول، اطلاعات متعددی مانند اندازه، رنگ‌ها و غیره تعیین کنید. در اینجا می‌خواهیم نشان دهیم که چگونه می‌توان یک سطر خاص از این Repeater را بر اساس اندازه محصول انتخاب کنیم.

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

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


// فرض کنید که اندازه مورد نظر "Large" است
if( have_rows('product_details') ): // بررسی اینکه آیا تکرار کننده فیلد دارد یا نه
while ( have_rows('product_details') ) : the_row(); // شروع حلقه برای نمایش هر سطر
$size = get_sub_field('size'); // گرفتن مقدار اندازه
if( $size == 'Large' ) : // بررسی شرط اندازه و مقایسه با "Large"
the_sub_field('product_name'); // نمایش نام محصول برای اندازه خاص
endif;
endwhile;
endif;
هزینه ۱: have_rows('product_details') بررسی می‌کند که آیا فیلدهایی در Repeater موجود است یا خیر.
هزینه ۲: while ( have_rows('product_details') ) و the_row() یک حلقه برای تکرار بر روی هر سطر موجود ایجاد می‌کنیم.
هزینه ۳: مقدار اندازه محصول را با استفاده از get_sub_field('size') بدست می‌آوریم.
هزینه ۴: با if( $size == 'Large' ) شرطی می‌گذاریم که اگر اندازه محصول "Large" بود، عملیات خاصی (مثلاً نمایش نام) انجام شود.
هزینه ۵: the_sub_field('product_name') به شما این امکان را می‌دهد که نام محصول را براساس اندازه خاص نشان دهید.

سوالات متداول

؟

چرا باید از ACF استفاده کنم؟

؟

چگونه می‌توانم Repeater Fields را در ACF اضافه کنم؟

؟

آیا می‌توانم از Repeater Fields برای پست‌های سفارشی نیز استفاده کنم؟