تاکسونومی در وردپرس، امکان دسته بندی نوشته ها را فراهم می کنند. در این قسمت، روش کار با تاکسونومی های وردپرس را بطور کامل آموزش می دهیم.

طبقه بندی(تاکسونومی) چیست؟

طبقه بندی یکی از آن کلماتی است که اکثر مردم هرگز نمی شنوند و یا استفاده نمی کنند. اساسا، طبقه بندی یک راه برای گروه بندی کردن چیزها با هم است.

به عنوان مثال، اگر من یک دسته از انواع مختلف حیوانات داشته باشم می توانم با توجه به ویژگی های مختلف آنها را گروه بندی کنم و سپس آن گروه ها را نام ببرم. این چیزی است که در کلاسهای زیست شناسی  به عنوان طبقه بندی لیندین شناخته می شود.

در وردپرس، “طبقه بندی” مکانیسم گروه بندی برای برخی از پست ها (یا لینک ها و یا انواع پست های سفارشی) است.

نام گروه های مختلف در یک طبقه بندی، اصطلاح(term) نامیده می شود. به عنوان مثال، با استفاده از گروه بندی حیوانات ممکن است یک گروه “پرندگان” و گروه دیگری “ماهی” را نام ببریم. “ماهی” و “پرندگان” اصطلاحات(ترم ها) در طبقه بندی ما هستند.

به عنوان مثال در وردپرس، یک دسته ( category)یا برچسب(tag) ، ترم ها هستند.

نمودار اصلی در طبقه بندی ها و روابط آنها در وردپرس

 

تاکسونومی ها در وردپرس، کدنویسان

 

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

وردپرس دارای چهار طبقه بندی است که شما احتمالا از آن استفاده کرده اید.

دسته بندی(category)

طبقه بندی “category” به شما اجازه می دهد که گروه ها را با دسته بندی آنها به دسته های مختلف گروه بندی کنید و با استفاده از انواع URL ها /category name/ می توان از این دسته ها در سایت مشاهده کرد. دسته ها معمولا از قبل تعریف شده و کاربد گسترده ای دارند .

برچسب(tag)

طبقه بندی ‘post_tag’ شبیه به دسته ها است، اما فرم به شکل آزاد تر. برچسب ها را می توان بر روی سایت بصورت ‘/ نام برچسب/’ در URL ها دید. پست ها دارای برچسب های متعددی هستند و معمولا به صورت پست های نزدیک یا به صورت ابرهای تگ نمایش داده می شوند.

دسته پیوندها (link_category)

طبقه بندی ‘link_category’ به شما اجازه می دهد تا پیوندهای خود را دسته بندی کنید. اینها به دلایل سازمانی فقط به صورت داخلی استفاده می شوند . آنها برای تعریف گروهی از لینک ها در ستون های فرعی و غیره استفاده می شوند.

فرمت های پست (post_formats)

طبقه بندی ‘post_format’ در وردپرس ۳٫۱ معرفی شد و این یک قطعه از اطلاعات متا است که می تواند توسط یک قالب برای سفارشی کردن نمایش پست ها استفاده شود. فرمت های پست جدیدی نمی توانندبه موارد پیش فرض موجود  اضافه شوند .

طبقه بندی های سفارشی

بعد از آمدن وردپرس ۲٫۳ شما می توانید طبقه بندی های سفارشی خود را ایجاد کنید، اما این ویژگی به ندرت از WordPress تا نسخه ۲٫۹ استفاده شده است. در حقیقت، طبقه بندی های دلخواه، یک راه بسیار قدرتمند برای گروه بندی اقلام مختلف در همه انواع روش هستند.

مثال

افزونه EDD که برای فروش آنلاین فایل استفاده می شود از طبقه بندی download_category برای دسته بندی دانلودها استفاده می کند.شما هم می توانید طبقه بندی دلخواه خود را به وردپرس اضافه کنید.

ثبت نام طبقه بندی

برای ثبت نام یک طبقه بندی، از تابع register_taxonomy  استفاده کنید.

در اینجا یک نمونه از ثبت نام طبقه بندی “people ” است:

فرض کنید می خواهیم یک طبقه بندی جدید بنام people به وردپرس اضافه کنیم که مطالب مربوط به افراد مختلف را بتوانیم در آن دسته بندی کنیم. برای این کار باید طبقه بندی را به صورت زیر ثبت کنیم.

قطعه کد زیر می تواند در فایل functions.php از قالب وردپرس و یا هم در یک افزونه جداگانه قرار گیرد .(روش های اضافه کردن قطعه سفارشی کد به وردپرس)

function people_init() {
// create a new taxonomy
register_taxonomy(
'people',
'post',
array(
'label' => __( 'People' ),
'rewrite' => array( 'slug' => 'person' ),
'capabilities' => array(
'assign_terms' => 'edit_guides',
'edit_terms' => 'publish_guides'
)));
}
add_action( 'init', 'people_init' );

تا اینجا، طبقه بندی “people” تعریف شده است. این طبقه بندی برای استفاده در نوشته ها (post ها) تعریف شده است و برای آن یک اسلاگ بازنویسی هم  تعریف شده است تا بتواند با آدرس را به “/person/” بجای “/people/” مورد رجوع قرار داده شود.

خط قابلیتها(capabilities) اختیاری است. بدون آن، وردپرس قابلیت های پیش فرض را برای کاربران مشابه به عنوان پست ها تعریف می کند. همانطور که در بالا نشان داده شده است، این اجازه می دهد که هر کاربر با قابلیت سفارشی “edit_guides” را به تخصیص طبقه بندی به یک پست و هر کاربر با قابلیت سفارشی “publish_guides” برای ایجاد اقلام طبقه بندی جدید بتواند اقدام کند.

قابلیت های طبقه بندی عبارتند از assign_terms، edit_terms، manage_terms (نمایشگر طبقه بندی در ناوبری مدیریت) و delete_terms.

استفاده از طبقه بندی ها

تخصیص اصطلاحات به پست ها

بعد از اینکه یک طبقه بندی را اضافه کردید، می بینید که وردپرس یک متا جعبه جدید در پست ها برای شما ایجاد می کند. این جعبه متا جدید تقریبا دقیقا مانند جعبه برچسب ها به نظر می رسد و به شما اجازه می دهد برچسب ها را به این پست ها اضافه کنید.

اگر شما طبقه بندی خود را به پست ها متصل نکنید(هنگام ثبت تاکسونومی)، رابط کاربری برای شما ایجاد نمی شود. طبقه بندی ها عمومی هستند. برای اضافه کردن ترم ها به یک شیء با استفاده از طبقه بندی خودتان، باید از تابع wp_set_object_terms  استفاده کنید.

در اینجا یک مثال از اضافه کردن عبارت “Bob” به پست با شناسه ۱۲۳ در طبقه بندی “person” است:

wp_set_object_terms( 123, 'Bob', 'person' );

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

ابرها

تابع wp_tag_cloud ، می تواند پارامتر “طبقه بندی” را قبول کند، اگر شما می خواهید یک ابر از اصطلاحات (term ها) برای طبقه بندی سفارشی خود نمایش دهید.

لیست اصطلاحات

اگر می خواهید یک لیست سفارشی در قالب وردپرس خود داشته باشید، می توانید نام طبقه بندی را در تابع the_terms در حلقه اصلی وردپرس استفاده کنید ، مثل زیر:

the_terms( $post->ID, 'people', 'People: ', ', ', ' ' );

این دستور، لیست افرادی که به هر پست پیوست شده است نمایش داده می شود. توجه داشته باشید که the_terms متن را به روی صفحه در نقطه ای که تابع را فراخوانی می کنید، چاپ می کند.

برای دریافت یک لیست پویا از اصطلاحات به عنوان یک آرایه برای استفاده در محتوا، از get_terms استفاده کنید. برای مثال، لیست تمام اصطلاحات یک طبقه بندی سفارشی را با استفاده از جعبه چک کنید:

$terms = get_terms( array(
'taxonomy' => 'your_custom_taxonomy',
'hide_empty' => false, ) );
$output = '';
foreach($terms as $term){
$output .= '<input type="checkbox" name="terms" value="' . $term->name . '" /> ' . $term->name . '<br />';
}

توجه داشته باشید که پارامتر ‘hide_empty’ از تابع، برای بازگرداندن تمام اصطلاحات به false تنظیم شود، در غیر این صورت تنها اصطلاحاتی که به پست اختصاص داده می شود، بازگردانده می شود.

پرس و جو بر اساس طبقه بندی

با ایجاد یک طبقه بندی،  به طور خودکار متغیر پرس و جو خاصی با استفاده از کلاس WP_Query ایجاد می کند، که می توانیم از آن برای بازیابی پست ها بر اساس طبقه بندی اقدام کنیم. برای مثال، برای خواندن یک لیست از پستهایی که دارای “bob” به عنوان طبقه بندی “person” هستند، از موارد زیر استفاده خواهیم کرد:

$query = new WP_Query( array( 'person' => 'bob' ) );

یا، برای آرگومان پیچیده تر:

$args = array(
'tax_query' => array(
array(
'taxonomy' => 'person',
'field' => 'slug',
'terms' => 'bob'
))
);
$query = new WP_Query( $args );

خطای ۴۰۴

اگر سایت شما از permalink های سفارشی استفاده می کند، پس از تغییر در طبقه بندی ها، باید ساختار permalink خود را بررسی و در صورت نیاز اصلاح کنید،اگرنه ممکن است خطای ۴۰۴ “صفحه یافت نشد” بوجود آید. برای این کار در پیشخوان وردپرس ، بخش تنظیمات>پیوندهای یکتا را باز کرده و ساختار permalink خودکار را در صورت نیاز اصلاح کنید.

نمایش قابل چاپ