Інколи під час роботи над проектом бувають моменти, коли було б непогано мати функцію API, щоб допомогти досягти того, що потрібно зробити. Приклад: можливість отримати таксономію за ідентифікатором терміна.
Звісно, це неважко зробити, але мати можливість отримувати інформацію з уже наявних функцій завжди приємно.
Але коли це неможливо, ми пишемо свій власний спосіб, чи не так?
Отримати таксономію за ідентифікатором терміна
Коли я збираюся зробити щось подібне, я зазвичай запускаю ідею від кількох інших розробників, щоб переконатися, що я не пропускаю певну функцію, яка існує в ядрі WordPress, і я просто не знаю про це.
(Це трапляється частіше, ніж ви думаєте, але для мене це може бути більшою проблемою, ніж будь-що інше. Незважаючи на це, WordPress — це велика частина програмного забезпечення :).
Випадок використання чогось подібного простий:
- У мене є ідентифікатор терміна, який було збережено в базі даних іншим способом (наприклад, елементом вибору в іншому місці програми, наприклад на інформаційній панелі).
- Я хочу відобразити назву таксономії, пов’язану з ідентифікатором цього терміна.
Концептуально я вважаю це типом зворотного погляду. Зазвичай ми можемо взяти таксономію та переглянути її умови. Але таксономія за ідентифікатором терміна йде в іншому напрямку.
На щастя, це досить легко, якщо ви використовуєте існуючий API. Перевірте це :
<?php
/**
* Retrieves the taxonomy name associated on the specified $term_id.
*
* @access private
* @param int $term_id The term ID from which to retrieve the taxonomy name.
* @return string $taxonomy The name of the taxaonomy associated with the term ID.
*/
private function get_taxonomy_by_term_id( $term_id) {
// We can't get a term if we don't have a term ID.
if (0 === $term_id || null === $term_id) {
return;
}
// Grab the term using the ID then read the name from the associated taxonomy.
$taxonomy = '';
$term = get_term( $term_id );
if (false !== $term) {
$taxonomy = $term->taxonomy;
}
return trim( $taxonomy );
}
Код має бути простим для дотримання (якби не коментарі над функцією), але він повертатиме або порожній рядок, або назву таксономії на основі ідентифікатора терміна.
Оскільки get_term отримує об’єкт WP_Term, ми можемо переглянути властивість таксономії терміна, щоб отримати назву. Потім я обрізаю рядок про всяк випадок (якщо я працюю з чужим кодом, я ніколи не знаю, доповнений він чи ні, і мені не потрібні сторонні символи).
Незважаючи на це, тепер у вас є функція, яка дозволяє отримати назву таксономії за ідентифікатором терміна. Якщо повертається порожній рядок, назви таксономії не знайдено.