افزودن فیلد تصویر به تکسانومی در وردپرس

تکسانومی(Taxonomy) روشی برای دسته بندی محتوا در وردپرس است، زمانی که نوشته یا پست جدیدی را در طبقه(Category) خاصی قرار می دهید یا برای آن برچسب(Tag) مشخص می کنید در حال استفاده از تکسانومی هستید. لازم است بدانید که دسته و برچسب از جمله تکسانومی های از پیش تعریف شده وردپرس هستند، اما این امکان وجود دارد به کمک تابع ()register_taxonomy موارد دلخواه تان را نیز ایجاد نمائید.

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

نصب افزونه ACF

در ابتدا افزونه قدرتمند Advanced Custom Fields را نصب و فعال نمائید، به کمک این پلاگین می توانید انواع و اقسام فیلدها را به بخش های مختلف وردپرس اضافه کنید.

افزونه acf

 

پس از نصب افزونه ACF گزینه ای تحت عنوان “زمینه های سفارشی” به پنل مدیریتی وردپرس اضافه می شود، از منوی فوق گزینه “افزودن” را انتخاب کرده و یک عنوان برای گروه مدنظرتان مشخص نمائید، سپس بر روی گزینه “افزودن زمینه” کلیک کنید.

تعریف گروه در acf

 

حال فیلدهای “برچسب زمینه(Field Label)”، “نام زمینه(Field Name)” و “نوع زمینه(Field Type)” را مطابق تصویر زیر تکمیل نمائید، بهتر است نام زمینه با حروف انگلیسی مشخص شود، همچنین زمینه از نوع تصویر باشد.

افزودن فیلد در acf

 

سپس صفحه را اسکرول کرده تا به باکس “مکان” برسید، در این بخش مشخص می کنیم که فیلد تصویر فقط در دسته ها قابل استفاده باشد.

مکان فیلد در acf

 

در نهایت با گزینه “انتشار” تغییرات را ذخیره کنید، برای اطمینان از صحت انجام مراحل به صفحه دسته ها مراجعه نمائید، همانطور که ملاحظه می کنید گزینه انتخاب تصویر اضافه شده است.

فیلد تصویر در دسته وردپرس

استفاده از تصاویر در قالب سایت

خوشبختانه افزونه ACF تدابیر لازم برای فراخوانی مقادیر فیلدها را در اختیارتان قرار می دهد، برای اینکار کافی است متد ()get_field را مشابه کد زیر فراخوانی کنید، آرگومان اول این تابع نام زمینه است که در مراحل بالا با حروف انگلیسی مشخص کردیم، آرگومان دوم نیز مقدار فیلد term_id جدول wp_terms می باشد که با تابع get_categories همه آنها را بدست آوردیم.

if ( function_exists( 'get_field' ) ) {
      $categories = get_categories();
      foreach ( $categories as $category ) {
         $image = get_field( 'category_image', 'category_' . $category->term_id );
         echo '<img src=' . $image["url"] . '>';
     }
 }

در آرایه image$ علاوه بر URL اندازه های مختلف تصویر(thumbnail، medium، large) نیز وجود دارد.

نظرات و سوالات کاربران

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *