از امکانات مفیدی که میتوان در طراحی قالب وردپرس به پوسته سایتهای دانلودی افزود قابلیت ساخت لینکهای دانلود از طریق زمینه های دلخواه wordpress می باشد. احتمالا در سایتهای دانلود موسیقی یا فیلم و سریال جعبه های دانلودی را مشاهده کرده اید که پشت سرهم تکرار می شوند و هر کدام دارای توضیحات به همراه لینکهای دانلود با کیفیت متفاوت هستند، اگر میخواهید چنین باکسهای دانلودی را بسازید باید با افزودن زمینه دلخواه تکرار شونده به قالب وردپرس اینکار را بکنید. پیش از این فیلم آموزش ساخت زمینه دلخواه پیشرفته با استفاده از افزونه Advanced Custom Fields در ایران اسکریپت منتشر شده که با مشاهده آن میتوانید براحتی متاباکس و کاستوم فیلد حرفه ای ایجاد کنید اما برای ساخت زمینه تکراری باید پلاگین دیگری با نام تکرار کننده زمینه را از بخش افزودنی های acf دانلود و بر روی نسخه پرمیوم آن نصب کنید که البته نیازمند خرید هر دو افزونه می باشد. اگر نمی خواهید پولتان را برای تهیه نسخه حرفه ای acf خرج کنید می توانید از افزونه فوق العاده CMB2 که برای ساخت انواع زمینه دلخواه، متاباکس و فرم کاربرد دارد استفاده کنید. در این مطلب از ایران اسکریپت به معرفی امکانات و آموزش افزودن زمینه دلخواه تکرار شونده به پوسته از طریق آن می پردازیم پس تا پایان همراه ما باشید.
آموزش افزودن زمینه دلخواه تکرار شونده به پوسته در طراحی قالب وردپرس
افزونه CMB2 ابزاری برای ساخت metabox و custom fields حرفه ای می باشد، پس از نصب و فعال سازی پلاگین برخلاف acf هیچگونه پنلی برای تنظیمات و ساخت زمینه و متاباکس ایجاد نمی شود و باید با استفاده از توابع معرفی شده افزونه در مخزن وردپرس و سایت گیت هاب زمینه های مورد نیاز را ایجاد کنید. نگران نباشید اگر اندکی با کدنویسی php آشنایی داشته باشید براحتی می توانید انواع زمینه متنی، چک باکس، جعبه توضیحات متنی، تکرار شونده، لیستهای دراپ داون و کشویی، صحیح و غلط و … را بسازید. اگر با کدنویسی پی اچ پی آشنایی ندارید میتوانید با خرید نسخه پرمیوم افزونه acf براحتی و بدون دردسر برنامه نویسی انواع زمینه تکراری یا Repeatable را ایجاد کنید.
نحوه راه اندازی افزونه cmb2
برای بکارگیری cmb2 دو روش وجود دارد که به توضیح هر دو می پردازیم.
در روش اول شبیه سایر پلاگینهای وردپرس افزونه را نصب و فعال سپس فایل example-functions.php موجود در پوشه افزونه را به فولدر قالب وردپرس منتقل و ویرایش میکنیم یا اینکه توابع نوشته شده را به فایل functions.php خود قالب وردپرس اضافه می کنیم.
در روش دوم پوشه افزونه را به فولدر قالب منتقل کرده سپس فایل example-functions.php موجود در افزونه را در کنار سایر فایلهای php پوسته منتقل و در صورت نیاز به نام دلخواه تغییر می دهیم. فانکشن نمونه ای که افزونه در اختیارمان قرار می دهد دارای تعداد زیادی زمینه از پیش ساخته شده است تا بتوانیم براحتی زمینه های دلخواه را نگه داشته و باقی آنها را حذف کنیم.
نمونه کد ساخت زمینه دلخواه تکرار شونده
کدهای زیر نمونه ای از زمینه تکراری هستند که می توانید با استفاده از آنها زمینه مورد نیازتان را ایجاد کنید. برای نمایش نتایج و فیلدهای پر شده از حلقه ای که در انتهای کدها قرار دارد استفاده کنید. برای درک بهتر کدها و نحوه افزودن زمینه دلخواه تکرار شونده یا حذف آن فیلم آموزشی تهیه شده را مشاهده نمایید.
// copy this code to functions.php add_action( 'cmb2_init', 'fabreview_register_demo_metabox' ); function fabreview_register_demo_metabox() { $prefix = '_fabreview_meta_'; $cmb_review = new_cmb2_box( array( 'id' => $prefix . 'metabox', 'title' => __( 'جعبه دانلود تکرارشونده', 'cmb2' ), 'object_types' => array( 'post',) )); $group_field_id = $cmb_review->add_field( array( 'id' => 'review_criteria', 'type' => 'group', 'description' => __( 'برای ساخت جعبه های دانلود از این بخش استفاده کنید. <br> برای طراحی قالب وردپرس اختصاصی با ایران اسکریپت به ادرس iranscript.ir تماس بگیرید. - محمد - iranscript.ir', 'cmb' ), 'options' => array( 'group_title' => __(' جعبه دانلود شماره {#}', 'cmb'), 'add_button' => __('افزودن جعبه جدید', 'cmb'), 'remove_button' => __('حذف جعبه', 'cmb'), 'sortable' => true, ), )); $cmb_review->add_group_field( $group_field_id, array( 'name' => 'توضیحات', 'id' => 'crit_name', 'type' => 'text', )); $cmb_review->add_group_field( $group_field_id, array( 'name' => 'لینک دانلود', 'id' => 'crit_score', 'type' => 'text', )); } // copy this code to single.php <br> <?php $entries = get_post_meta( get_the_ID(), 'review_criteria', true ); if ($entries){ foreach ( (array) $entries as $key => $entry ) { $criteria = $score = ''; if ( isset( $entry['crit_name'] )) $criteria = esc_html( $entry['crit_name']); if ( isset( $entry['crit_score'] )) $score = esc_html( $entry['crit_score'] ); ?> <p> <span><?php echo $criteria; ?></span> <a class="iranscript" href="<?php echo $score; ?>">دانلود با لینک مستقیم</a> </p> <?php }} ?> <br>
موفق باشید.