گرفتن مطالب با term های خاص در وردپرس با استفاده از تابع get_objects_in_term
بسیاری از اوقات لازم می شود که مطالب با term (های) مشخصی را دریافت کنیم. این تابع آی دی term (های) مدنظر ما را می گیرد و آی دی مطالب دارای آن term (ها) را بر می گرداند.
get_objects_in_term( int|array $term_ids, string|array $taxonomies, array|string $args = array() )
پارامترهای تابع get_objects_in_term:
1- پارامتر term_ids :
در این پارامتر باید مشخص کنیم که قرار است مطالب با چه term یا term هایی را دریافت کنیم. اگر قرار است یک term باشد، آی دی آن را به صورت integer یا عدد وارد می کنیم و اگر قرار است چند term باشد، کافیست آی دی آن ها را در یک آرایه قرار دهیم و وارد تابع کنیم
// get objects by one term - category taxonomy for example get_objects_in_term( 3, 'category' ) // get objects by multiple term - category taxonomy for example get_objects_in_term( [3,4,5], 'category' )
همانطور که مشاهده فرمودید، برای این کار نیاز به آی دی term ها یا term_id داریم که باید بر حسب نیاز خود بتوانید آن ها را دریافت کنید.
2- پارامتر taxonomies:
این پارامتر برای دریافت نامک taxonomy یا taxonomy ها می باشد. اگر یک term داشته باشیم، طبعا یک taxonomy خواهیم داشت ولی اگر چند term داشته باشیم، در اینصورت ممکن است term های ما مربوط به taxonomy های متفاوتی باشند. در این مورد نیاز است نامک تمام taxonomy های مدنظر را وارد نماییم.
اگر یک taxonomy داشتیم، آن را به صورت رشته و اگر چند مورد داشتیم، همه ی آن ها در یک آرایه قرار داده و وارد تابع می کنیم.
// get objects by one taxonomy (all terms have same taxonomy) - category taxonomy for example get_objects_in_term( 3, 'category' ) get_objects_in_term( [3,4,5], 'category' ) // get objects by multiple taxonomy (all terms dont have same taxonomy) - category and post_tag taxonomy for example get_objects_in_term( [3,4,5], ['category','post_tag'] )
این پارامتر از این جهت اهمیت دارد که در ابتدای اجرای تابع، نامک taxonomy چک می شود. اگر نامک معتبر بود، تابع ادامه می یابد و یک آرایه حاوی آبجکت آی دی های مربوط به term های مدنظر ما برگردانده می شود. در غیر اینصورت کلاس wp_error هندل می شود و می توانیم دلیل خطا را نیز چاپ کنیم.
فرض کنید ما اشتباها به جای کلمه category از کلمه catagory استفاده کنیم. در اینصورت taxonomy وارد شده معتبر نبوده و wp_error برگردانده می شود:
WP_Error Object ( [errors] => Array ( [invalid_taxonomy] => Array ( [0] => Invalid taxonomy. ) ) [error_data] => Array () );
3- پارامتر args:
این پارامتر برای مرتب کردن آبجکت ها استفاده می شود. مثلا مرتب سازی بر حسب ASC (آیدی از کوچک به بزرگ) صورت گیرد یا بر حسب DESC (آیدی از بزرگ به کوچک)
//order by ASC get_objects_in_term( 30, 'category', array( 'order' => 'ASC' ) ); //order by DESC get_objects_in_term( 30, 'category', array( 'order' => 'DESC' ) );