قسمت ۴ – دراپ دان و لیست در تکسانومی / Taxonomy

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

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

تابع کاربردی wp_dropdown_categories

تابع wp_dropdown_categories() یک دراپ‌دان از دسته‌ها یا ترم‌های یک تکسانومی ایجاد می‌کند. این تابع هم با تکسانومی‌های پیش‌فرض وردپرس کار می‌کند و هم از تکسانومی‌های سفارشی پشتیبانی می‌کند. تابع، آرایه‌ای از تنظیمات را به‌عنوان ورودی دریافت می‌کند و در خروجی یک دراپ‌دان می‌سازد. نمونه کد تابع wp_dropdown_categories() را در ادامه مشاهده می‌کنید.

$args = array(
    'show_option_all'    => 'همه',
    'show_option_none'   => 'هیچکدام',
    'option_none_value'  => '-1',
    'orderby'            => 'name', //id,name,slug,count
    'order'              => 'ASC',
    'show_count'         => false,
    'hide_empty'         => false,
    'child_of'           => 0,
    'exclude'            => '',
    'include'            => '',
    'echo'               => false,
    'selected'           => 6,
    'hierarchical'       => true,
    'name'               => 'cat',
    'id'                 => 'test',
    'class'              => 'postform',
    'depth'              => 0,
    'tab_index'          => 10,
    'taxonomy'           => 'category',
    'hide_if_empty'      => false,
    'value_field'	     => 'term_id',
);
$drop = wp_dropdown_categories( $args );
echo $drop;

تابع کاربردی wp_list_categories

تابع wp_list_categories() عملکردی شبیه تابع قبلی دارد، اما ترم‌ها را به‌صورت لیست نمایش می‌دهد. این تابع می‌تواند دسته‌ها یا ترم‌های تکسانومی‌های پیش‌فرض و سفارشی را دریافت کند و برای آن‌ها یک لیست بسازد. تابع، آرایه‌ای از تنظیمات را به‌عنوان ورودی دریافت می‌کند. نمونه کد تابع wp_list_categories() را در ادامه مشاهده می‌کنید.

echo "<ul>";
$args = array(
    'show_option_all'    => '',
    'show_option_none'   => '',
    'orderby'            => 'ID', //id,name,slug,count
    'order'              => 'ASC',
    'show_count'         => 0,
    'hide_empty'         => 1,
    'use_desc_for_title' => 1,
    'child_of'           => 0,
    'exclude'            => '',
    'exclude_tree'       => '',
    'include'            => '',
    'echo'               => 1,
    'current_category'   => '',
    'hierarchical'       => 1,
    'title_li'           => '',
    'hide_title_if_empty'=> false,
    'depth'              => 0,
    'style' 		 	 => 'list',
    'taxonomy'           => 'category',
    'separator'    		 => '',
);
wp_list_categories( $args );
echo "</ul>";

توضیح مقادیر توابع دراپ‌دان و لیست

در ادامه، تنظیمات مشترک و اختصاصی این دو تابع را بررسی می‌کنیم. با استفاده از این تنظیمات می‌توانیم نحوه مرتب‌سازی، فیلتر کردن و نمایش ترم‌ها را کنترل کنیم.

تنظیم گزینه‌های اولیه

show_option_all: این گزینه به‌صورت پیش‌فرض مقدار خالی دارد. اگر متنی برای آن تعیین کنیم، تابع آن متن را به‌عنوان یک گزینه جدید به دراپ‌دان اضافه می‌کند. برای ایجاد گزینه انتخاب همه موارد، کافی است عبارت دلخواه خود مانند «همه» را در این قسمت قرار دهیم. اگر کد دراپ‌دان را با Inspect بررسی کنیم، گزینه همه مقدار 0 را برمی‌گرداند.

<option value="0">همه</option>

show_option_none و option_none_value: این دو تنظیم با یکدیگر ارتباط دارند. گزینه show_option_none یک گزینه جدید به دراپ‌دان اضافه می‌کند تا کاربر بتواند حالت «هیچ‌کدام» را انتخاب کند. برای این کار، عبارت دلخواه خود مانند «هیچ‌کدام» را در show_option_none قرار می‌دهیم. سپس در option_none_value مقداری را وارد می‌کنیم که دراپ‌دان باید هنگام انتخاب این گزینه برگرداند. برای مثال، می‌توانیم عدد -1 را وارد کنیم.

<option value="-1">هیچکدام</option>

مرتب‌سازی و نمایش تعداد نوشته‌ها

orderby: این گزینه مشخص می‌کند که تابع، لیست یا دراپ‌دان را براساس چه مقداری مرتب کند. می‌توانیم مقادیری مانند id، name، slug یا count را برای آن در نظر بگیریم. برای مثال، اگر مقدار orderby را برابر با count قرار دهیم، تابع ترم‌ها را براساس تعداد نوشته‌های آن‌ها مرتب می‌کند.

order: گزینه orderby معیار مرتب‌سازی را مشخص می‌کند و گزینه order ترتیب صعودی یا نزولی آن را تعیین می‌کند. این گزینه می‌تواند دو مقدار ASC و DESC را دریافت کند.

show_count: این گزینه تعداد نوشته‌های هر دسته را در کنار نام آن نمایش می‌دهد. برای فعال یا غیرفعال کردن آن می‌توانیم از مقادیر true و false یا اعداد 1 و 0 استفاده کنیم.

hide_empty: این گزینه مشخص می‌کند که تابع دسته‌های بدون نوشته را نمایش دهد یا پنهان کند. این تنظیم مقدار true یا false را دریافت می‌کند.

فیلتر کردن دسته‌ها و ترم‌ها

child_of: اگر بخواهیم فقط فرزندان یک دسته خاص را نمایش دهیم، مقدار child_of را برابر با شناسه یا ID آن دسته قرار می‌دهیم. در این حالت، تابع فقط فرزندان همان دسته را نمایش می‌دهد.

exclude: این گزینه می‌تواند یک ID یا آرایه‌ای از IDها را دریافت کند. تابع، دسته‌هایی را که شناسه آن‌ها در exclude قرار دارد، نمایش نمی‌دهد.

exclude_tree: این گزینه فقط در تابع لیست کاربرد دارد. با استفاده از آن می‌توانیم یک دسته را همراه با تمام فرزندانش از لیست حذف کنیم. این گزینه یک ID یا آرایه‌ای از IDهای دسته‌ها را دریافت می‌کند.

include: این گزینه برعکس exclude عمل می‌کند. تابع فقط دسته‌هایی را نمایش می‌دهد که ID آن‌ها را در include وارد کرده‌ایم. این گزینه نیز می‌تواند یک ID یا آرایه‌ای از IDها را دریافت کند.

کنترل خروجی تابع

echo: این گزینه مقدار true یا false را دریافت می‌کند و مشخص می‌کند که تابع خروجی را مستقیماً چاپ کند یا آن را برگرداند. اگر مقدار echo را برابر با false قرار دهیم، می‌توانیم خروجی را داخل یک متغیر ذخیره کنیم و در محل دلخواه نمایش دهیم.

$drop = wp_dropdown_categories( $args );
echo $drop;

selected: این گزینه مشخص می‌کند که دراپ‌دان در حالت اولیه کدام دسته را انتخاب کند. برای این کار، مقدار selected را برابر با ID دسته موردنظر قرار می‌دهیم.

hierarchical: این گزینه مقدار true یا false را دریافت می‌کند و رعایت سلسله‌مراتب را در لیست یا دراپ‌دان کنترل می‌کند. اگر این گزینه را فعال کنیم، تابع فرزندان را کمی جلوتر از والدها نمایش می‌دهد. در لیست‌هایی که از تگ‌های ul و li استفاده می‌کنند، تابع برای فرزندان یک تگ ul جدید داخل تگ li والد ایجاد می‌کند.

تنظیم اتریبیوت‌های دراپ‌دان

name و id و class و tab_index: این گزینه‌ها اتریبیوت‌های تگ select را تعیین می‌کنند. می‌توانیم از این مقادیر برای استایل‌دهی یا برنامه‌نویسی دراپ‌دان استفاده کنیم.

<select name="cat" id="test" class="postform" tabindex="10">
    <option value="0">همه</option>
    ...
</select>

تنظیم عمق و نوع تکسانومی

depth: این گزینه مشخص می‌کند که تابع چند سطح از سلسله‌مراتب مانند والد، فرزند و نوه را نمایش دهد. اگر مقدار آن را برابر با 0 قرار دهیم، تابع تمام سطح‌ها را نمایش می‌دهد. همچنین می‌توانیم با وارد کردن یک عدد، تعداد سطح‌های قابل‌نمایش را محدود کنیم.

taxonomy: این گزینه نام تکسانومی را مشخص می‌کند. برای نمایش دسته‌های پیش‌فرض وردپرس از مقدار category استفاده می‌کنیم. برای نمایش ترم‌های یک تکسانومی سفارشی نیز نام همان تکسانومی را در این بخش قرار می‌دهیم.

hide_if_empty: اگر هیچ گزینه‌ای برای نمایش وجود نداشته باشد و مقدار hide_if_empty را برابر با true قرار دهیم، تابع دراپ‌دان یا لیست خالی را نمایش نمی‌دهد.

value_field: این گزینه مشخص می‌کند که اتریبیوت value در تگ‌های select و option چه مقداری داشته باشد. این تنظیم می‌تواند مقادیری مانند term_id، name یا slug را دریافت کند. در مثال زیر از مقدار term_id استفاده کرده‌ایم؛ بنابراین تابع ID دسته کتاب‌ها را در اتریبیوت value قرار می‌دهد.

<option class="level-0" value="2">کتاب ها</option>

تنظیمات اختصاصی تابع wp_list_categories

use_desc_for_title: این گزینه فقط در لیست‌ها کاربرد دارد. تابع با فعال بودن این گزینه، توضیحات دسته را دریافت می‌کند و آن را در اتریبیوت title تگ‌های لینک قرار می‌دهد. اگر فیلد توضیحات دسته خالی باشد، تابع اتریبیوت title را اضافه نمی‌کند.

current_category: این گزینه فقط در لیست‌ها کاربرد دارد. مقدار current_category باید ID یک دسته باشد. تابع کلاس رزروشده current-cat را به تگ li همان دسته اضافه می‌کند.

<li class="cat-item cat-item-2 current-cat">

title_li: این گزینه فقط در لیست‌ها کاربرد دارد و یک عنوان داخل تگ li ایجاد می‌کند. این گزینه یک مقدار رشته‌ای دریافت می‌کند.

hide_title_if_empty: این گزینه مقدار true یا false را دریافت می‌کند و با title_li ارتباط دارد. اگر لیست هیچ والد یا فرزندی نداشته باشد، این گزینه مشخص می‌کند که تابع عنوان title_li را نمایش دهد یا پنهان کند.

تغییر ساختار نمایش لیست

style: این گزینه به‌صورت پیش‌فرض مقدار list دارد. در این حالت، تابع تگ‌های a را داخل تگ‌های li قرار می‌دهد. اگر مقدار style را خالی بگذاریم، تابع فقط تگ‌های a را نمایش می‌دهد.

separator: اگر مقدار style را خالی بگذاریم، تابع فقط تگ‌های a را نمایش می‌دهد. در این حالت می‌توانیم با استفاده از separator یک جداکننده مانند ویرگول یا حتی یک تگ HTML را میان لینک‌ها قرار دهیم.

اشتراک‌گذاری با یک کلیک

با یک کلیک، محتوای این صفحه را در شبکه‌های اجتماعی، ایمیل یا پیام‌رسان‌های مورد علاقه‌تان به‌سرعت به اشتراک بگذارید.

اشتراک‌گذاری صفحه قسمت ۴ – دراپ دان و لیست در تکسانومی / Taxonomy در شبکه‌های اجتماعی

نظرات شما برای ما ارزشمند است

متاسفانه تاکنون پیامی برای این مطلب ثبت نشده است. شما اولین شخصی باشید که پیام می‌گذارد.

نظرات کاربران

فرم افزودن دیدگاه

با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.

با خدمات تهران آی تی آشنا شوید

تهران آی تی با افتخار خدمات زیر را ارائه می‌دهد.