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

تاریخ: 02 آذر 1398

قبلا در پست مربوط به آشنایی با term ها در وردپرس در مورد نمایش لیست پست ها با term خاص صحبت نمودیم و گفتیم که تابع get_objects_in_term می تواند به راحتی این کار را برای ما انجام دهد و آیدی تمام مطالب را به صورت یک آرایه برگرداند و از آن پس می توانیم به راحتی با شی wp_query یا هر روش دیگر آنها را نمایش دهیم.

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

 

تابع wp_get_object_terms برای دریافت کل term های پست

این تابع به این صورت کار می کند که آیدی مطلب (مطالب) و همچنین تکزانامی (های) موردنظر را می گیرد و اگر term موجود بود، آرایه ای از آبجکت های آن term ها را بر می گرداند. همچنین اگر taxonomy وارد شده معتبر نباشد، شی wp_error برگردانده می شود.

 

wp_get_object_terms( int|array $object_ids, string|array $taxonomies, string|array $args )

برای مثال کلیه term های تکزانامی category پست فعلی را به این صورت می توانیم دریافت می کنیم:

 


//input
$terms = wp_get_object_terms( 3363, 'category' );
print_r($terms)

//output
Array
(
   [0] => WP_Term Object
      (
         [term_id] => 131
         [name] => آموزش وردپرس
         [slug] => %d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d9%88%d8%b1%d8%af%d9%be%d8%b1%d8%b3
         [term_group] => 0
         [term_taxonomy_id] => 131
         [taxonomy] => category
         [description] => dasdas
         [parent] => 0
         [count] => 1
         [filter] => raw
      )

)

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

 


$terms = wp_get_object_terms( 3363, 'category' );
foreach( $terms as $term ){
   echo $term->name . '، ';
}

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

 


$terms = wp_get_object_terms( 89, ['category', 'post_tag'] );

//show category terms
foreach( $terms as $term ){
   if( $term->taxonomy == 'category' ){
   echo $term->name . ', ';
   }
}

//show post_tag terms
foreach( $terms as $term ){
   if( $term->taxonomy == 'post_tag' ){
   echo $term->name . ', ';
   }
}

پارامتر سوم این تابع جایی است که به ما امکان بیشتری برای شخصی سازی و فیلتر خروجی می دهد. می توانیم آرایه ای با مشخصات زیر را در آن وارد نماییم: (پارامترهای مهم آورده شده است)

 


array(
   'orderby'           => 'count', //
   'order'             => 'ASC', //
   'include'           => [], 
   'exclude'           => [],
   'exclude_tree'      => [], //exclude term(s) and his child(s)
   'number'            => '', //count returned values
   'fields'            => 'all', //supported values => all, all_with_object_id, object_id, ids, tt_ids, id=>parent, names, count, id=>name, id=>slug
   'name'              => '', //
   'slug'              => '', //
   'term_taxonomy_id'  => '', //
   'name__like'        => '', //
   'description__like' => '', //
   'child_of'          => '', //child parent id
   'parent'            => '', //first parent id
   'childless'         => false, //
);

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

آموزش term در وردپرس

17 مقاله آموزشی

  • آشنایی با term ها در وردپرس
  • دریافت لینک term در وردپرس با استفاده از تابع get_term_link
  • دریافت term های دلخواه در وردپرس با استفاده از تابع get_terms
  • به روزرسانی term در وردپرس با استفاده از تابع wp_update_term
  • افزودن term در وردپرس با استفاده از تابع wp_insert_term
  • حذف term با تکزانامی category در وردپرس با استفاده از تابع wp_delete_category
  • حذف term در وردپرس با استفاده از تابع wp_delete_term
  • چک کردن وجود یا عدم وجود term در وردپرس با استفاده از تابع term_exists
  • عملیات crud متادیتای term ها در وردپرس
  • بررسی وجود taxonomy با داشتن نام آن taxonomy
  • دریافت اطلاعات taxanomy با استفاده از نام taxonomy در وردپرس
  • گرفتن فرزندان یک term در وردپرس با استفاده از تابع get_term_children
  • گرفتن مطالب با term های خاص در وردپرس با استفاده از تابع get_objects_in_term
  • گرفتن اطلاعات یک term در وردپرس با استفاده از تابع get_term
  • گرفتن اطلاعات یک term در وردپرس با استفاده از تابع get_term_by
  • چک کردن وجود یا عدم وجود term در یک پست
  • نمایش term های یک پست در وردپرس
  • طراحی افزونه وردپرس