تابع wp_list_categories در وردپرس
تابع wp_list_categories() یکی از توابع پرکاربرد در وردپرس است که برای نمایش فهرست دستهبندیها (Categories) در قالب سایت مورد استفاده قرار میگیرد. این تابع به توسعهدهندگان کمک میکند تا بدون نیاز به نوشتن کوئریهای پیچیده، لیستی از دستهها را به صورت پویا نمایش دهند. در این آموزش به طور کامل با نحوه عملکرد، پارامترها، مثالهای کاربردی و نکات بهینهسازی این تابع آشنا میشویم.
هدف و کاربرد تابع wp_list_categories()
این تابع برای تولید یک لیست HTML از دستهبندیها استفاده میشود. به عنوان مثال، زمانی که میخواهید در سایدبار سایت یک بخش با عنوان “دستهبندی مطالب” نمایش دهید، میتوانید از این تابع بهره ببرید. با استفاده از پارامترهای مختلف، میتوان نحوه نمایش، ترتیب، تعداد و حتی نمایش تعداد پستهای هر دسته را کنترل کرد.
نمونه ساده از استفاده تابع
<?php
wp_list_categories();
?>
کد بالا سادهترین شکل استفاده از تابع است و تمام دستهبندیهای موجود در وردپرس را به صورت لیست نمایش میدهد. با این حال، خروجی ممکن است بهینه یا سفارشی نباشد، بنابراین در ادامه با پارامترها و تنظیمات دقیقتر آشنا میشویم.
ساختار کلی تابع wp_list_categories()
wp_list_categories( array $args = array() )این تابع یک آرایه از پارامترها را به عنوان ورودی میپذیرد. هر پارامتر وظیفه خاصی در نحوه نمایش خروجی دارد. اگر هیچ پارامتری تعریف نشود، تابع از تنظیمات پیشفرض خود استفاده میکند.
پارامترهای مهم تابع wp_list_categories()
| پارامتر | توضیح | مقدار پیشفرض |
|---|---|---|
show_count | نمایش تعداد پستهای هر دسته در کنار نام آن. | 0 |
orderby | نحوه مرتبسازی دستهها. مقادیر ممکن: name، id، slug، count. | name |
order | ترتیب نمایش: ASC یا DESC. | ASC |
exclude | شناسه دستههایی که نباید نمایش داده شوند. | '' |
include | شناسه دستههایی که باید نمایش داده شوند. | '' |
title_li | عنوان لیست (پیشفرض: “Categories”). برای حذف آن از مقدار '' استفاده کنید. | __('Categories') |
style | نحوه نمایش HTML. مقادیر: list (به صورت <ul>) یا none. | list |
مثال کاربردی با پارامترها
<?php
wp_list_categories( array(
'orderby' => 'count',
'order' => 'DESC',
'show_count' => 1,
'exclude' => '5,12',
'title_li' => '',
) );
?>
در این مثال، دستهها بر اساس تعداد پستها مرتب شدهاند، تعداد پستها نمایش داده میشود و دو دسته با شناسههای ۵ و ۱۲ از خروجی حذف میشوند. همچنین عنوان لیست حذف شده تا تنها لینک دستهها نمایش یابد.
نمایش دستهها در سایدبار قالب
یکی از کاربردهای اصلی این تابع، نمایش فهرست دستهها در سایدبار یا فوتر قالب است. برای این کار کافی است قطعهکد را در فایل sidebar.php یا footer.php قالب خود قرار دهید:
<aside class="widget">
<h3>دستهبندیها</h3>
<ul>
<?php wp_list_categories( array( 'title_li' => '' ) ); ?>
</ul>
</aside>
به این ترتیب، لیستی پویا از دستهها در بخش مورد نظر نمایش داده میشود. هر زمان دستهای در پنل مدیریت اضافه یا حذف شود، تغییرات به صورت خودکار در خروجی اعمال خواهد شد.
نمایش دستههای سفارشی (Taxonomies)
تابع wp_list_categories() فقط به دستههای پیشفرض محدود نیست. شما میتوانید با استفاده از پارامتر taxonomy آن را برای نمایش طبقهبندیهای سفارشی (Custom Taxonomies) نیز به کار ببرید.
<?php
wp_list_categories( array(
'taxonomy' => 'product_cat',
'title_li' => '',
'show_count' => 1
) );
?>
در این مثال، دستهبندیهای مربوط به محصولات در ووکامرس (با نام product_cat) نمایش داده میشوند. این ویژگی برای فروشگاهها یا سایتهای دارای پستتایپ سفارشی بسیار مفید است.
نکات بهینهسازی و بهترین شیوهها (Best Practices)
- استفاده از Cache: اگر سایت دارای تعداد زیادی دستهبندی است، از افزونههایی مانند WP Super Cache استفاده کنید تا از بار اضافی روی پایگاه داده جلوگیری شود.
- حذف عنوان پیشفرض: همیشه عنوان پیشفرض را با
'title_li' => ''حذف کرده و عنوان دلخواه را به صورت دستی در HTML اضافه کنید. - کنترل خروجی HTML: برای تغییر ساختار HTML خروجی از فیلتر
wp_list_categoriesیا پارامترwalkerاستفاده کنید. - ایمنسازی: از قرار دادن مستقیم دادهها در HTML بدون تابعهای Escaping (مثل
esc_html()) خودداری کنید.
سفارشیسازی HTML خروجی با Walker Class
برای تغییر کامل ساختار خروجی، میتوانید از کلاس سفارشی مبتنی بر Walker_Category استفاده کنید. این روش برای توسعهدهندگانی مناسب است که قصد دارند HTML خروجی را به شکل خاصی شخصیسازی کنند.
<?php
class My_Custom_Walker extends Walker_Category {
function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {
$output .= '<li class="custom-cat"><a href="' . esc_url( get_category_link( $category->term_id ) ) . '">';
$output .= esc_html( $category->name );
$output .= '</a></li>';
}
}
wp_list_categories( array(
'walker' => new My_Custom_Walker(),
'title_li' => ''
) );
?>
در مثال فوق، یک کلاس جدید تعریف شده که در هر تکرار، خروجی HTML را به صورت سفارشی تولید میکند. با این روش، کنترل کامل بر ساختار HTML و CSS خواهید داشت.
نمایش تعداد نوشتهها فقط در صورت وجود
اگر بخواهید تنها دستههایی که شامل پست هستند نمایش داده شوند، از پارامتر hide_empty استفاده کنید:
<?php
wp_list_categories( array(
'hide_empty' => 1,
'title_li' => ''
) );
?>
به این ترتیب، دستههایی که هیچ نوشتهای ندارند از لیست حذف میشوند، که باعث بهبود تجربه کاربری و بهینهسازی SEO میشود.
جمعبندی
تابع wp_list_categories() ابزاری قدرتمند و انعطافپذیر برای نمایش دستهها در وردپرس است. با تنظیم پارامترهای مناسب، میتوان خروجی آن را کاملاً مطابق نیازهای طراحی و ساختار سایت تنظیم کرد. همچنین استفاده از Walker Class و فیلترها، کنترل دقیقتری بر خروجی HTML فراهم میکند. برای عملکرد بهتر، رعایت اصول امنیت، بهینهسازی کوئریها و استفاده از caching توصیه میشود.
آیا این مطلب برای شما مفید بود ؟




