گرفتن اطلاعات یک term در وردپرس با استفاده از تابع get_term_by
چنانچه در تابع get_term مشاهده کردیم، پارامتر اول این تابع به آی دی آن مربوط بود و لازم است آی دی term مدنظر را داشته باشیم. تابع get_term_by تقریبا مشابه تابع get_term کار می کند. با این تفاوت که می توانیم به جای آی دی، نام term، نامک term و یا حتی term_taxonomy_id را قرار دهیم.
در واقع این تابع، از تابع get_term استفاده می کند ولی با کاربری ساده تر و استفاده بیشتر. نحوه کارکرد این تابع این است که اگر نوع وارد شده term_id یا id باشد، تابع get_term برگردانده می شود ولی اگر نام، نامک یا تکزانامی آی دی بود، ابتدا آی دی آنها توسط تابع get_terms گرفته می شود و سپس تابع get_term برگردانده می شود.
get_term_by( string $field, string|int $value, string $taxonomy = '', string $output = OBJECT, string $filter = 'raw' )
1- پارامتر field
این پارامتر نوع مقداری که قرار است وارد کنیم را مشخص می کند. اگر میخواهیم term را بر اساس نام دریافت کنیم، رشته name، اگر بخواهیم بر اساس نامک دریافت کنیم، رشته slug، اگر بخواهیم بر اساس آی دی دریافت کنیم، رشته id یا term_id و اگر بخواهیم بر اساس تکزانامی آی دی دریافت کنیم، رشته term_taxonomy_id را وارد می نماییم.
get_term_by( 'name', 'mobile', 'category' ); get_term_by( 'id', 123, 'category' ); get_term_by( 'slug', 'mobile-phone', 'category' ); get_term_by( 'term_taxonomy_id', 123, 'category' );
1- پارامتر value
در این پارامتر، مقدار موردنظر مشخصه term خودمان را وارد می کنیم. مثلا اگر قرار است اطلاعات term را بر اساس name دریافت کنیم، نام term را در پارامتر دوم قرار می دهیم. به همین ترتیب در مورد انواع دیگر نیز عمل می کنیم. (مشابه قطعه کد بالا)
3- پارامتر taxonomy
این پارامتر مشخص کننده taxonomy مربوط به term ما می باشد و وجود آن ضروری می باشد. در واقع این تابع زمانی آبجکت شی ما را بر می گرداند که سه پارامتر اول تایید شوند و term ای با مشخصات وارد شده موجود باشد.
این تابع برخلاف تابع get_term در صورت اشتباه بودن taxonomy، شی wp_error را بر نمی گرداند. لذا استفاده از تابع is_wp_error برای چک کردن خروجی آن بی معناست.
3- پارامتر output
در این پارامتر مشخص می کنیم که مقدار برگردانده شده به صورت آبجکت باشد (مقدار OBJECT) یا به صورت یک آرایه انجمنی باشد (رشته ARRAY_A) , و یا به صورت یک آرایه عددی (رشته ARRAY_N). مقدار پیشفرض آن OBJECT می باشد.
4- پارامتر filter
در این پارامتر مشخص می کنیم که آبجکت خروجی بر چه مبنایی فیلتر شود. این مقدار ضروری نمی باشد و پیشفرض آن، raw است.