چطوری میشه

آرشیوهای دوستانه تاکسونومی سفارشی

آرشیوهای دوستانه تاکسونومی سفارشی

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

در این آموزش فرض می‌شود که همه آرشیوهای دسته‌بندی، برچسب‌ها و طبقه‌بندی با فایل archive.php شما نمایش داده می‌شوند، برخلاف فایل‌های جداگانه برای category.php، برچسب. php، و غیره.

بیشتر اوقات، در بالای فایل archive.php ، توسعه دهندگان تم چیزی شبیه به این قرار می دهند:

یا این:

یا ترکیبی:


	

اینها همه توابع کاملاً مناسبی برای استفاده هستند، با این تفاوت که با طبقه بندی های سفارشی کار نمی کنند و در واقع منجر به ایجاد خطا می شوند (اگر از یک is_category/is_tag شرطی استفاده نکنید).

اگر به کد منبع برای تابع tag_description()، خواهیم دید که در واقع فقط یک مرجع به هدف مشابه term_description()، اما با پارامتر “post-tag” به عنوان پیش‌فرض تنظیم شده است.

/**
 * بازیابی توضیحات برچسب
 *
 * @از 2.8
 *
 * @param int $tag اختیاری است. شناسه برچسب. به طور پیش فرض از شناسه تگ جهانی استفاده می کند.
 * @return شرح برچسب، موجود است.
 */
تابع tag_description($tag = 0) {
        return term_description($tag );
}

عملکرد term_description() واقعاً خوب است زیرا (اگر به منبع)، می بینیم که در واقع نوع طبقه بندی فعلی را که نمایش داده می شود شناسایی می کند و به جای پرتاب خطا مانند tag_description() تابع زیر را ببینید:

/**
 * بازیابی شرح اصطلاح.
 *
 * @از 2.8
 *
 * @param int $term اختیاری است. شناسه ترم به طور پیش فرض از شناسه اصطلاح جهانی استفاده می کند.
 * @param string $taxonomy نام تاکسونومی اختیاری. پیش‌فرض 'post_tag' است.
 * @return string شرح اصطلاح، موجود است.
 */
تابع term_description( $term = 0, $taxonomy = 'post_tag' ) {
        if ( !$term && ( is_tax() || is_tag() || is_category() ) {
                $term = get_queried_object();
                $taxonomy = $term->taxonomy;
                $term = $term->term_id;
        }
        $description = get_term_field('description', $term, $taxonomy );
        is_wp_error($description) را برگرداند؟ '' : $description;
}

همچنین یک تابع عالی برای عنوان اصطلاح طبقه بندی وجود دارد که به همین صورت عمل می کند: single_term_title()

این به این معنی است که ما می توانیم به سادگی از موارد زیر در archive.php خود استفاده کنیم و برای همه طبقه بندی ها کار می کند:

این بسیار بهتر از ایجاد چندین فایل برای مقابله با طبقه بندی های مختلف است (مگر اینکه طرح بندی های سفارشی برای هر کدام ایجاد کنید) و همچنین بسیار ایمن تر است.

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا