Czasami podczas pracy nad projektem dobrze byłoby mieć funkcję API, która pomogłaby osiągnąć to, co należy zrobić. Przykład: możliwość pobrania taksonomii według identyfikatora terminu.
To prawda, że nie jest to trudne, ale możliwość odzyskania informacji z wcześniej istniejących funkcji jest zawsze przyjemna.
Ale kiedy nie jest to możliwe, piszemy własny sposób, aby to zrobić, prawda?
Pobierz taksonomię według identyfikatora terminu
Kiedy zaczynam robić coś takiego, zazwyczaj uruchamiam ten pomysł przez kilku innych programistów, aby upewnić się, że nie brakuje mi jakiejś funkcji, która istnieje w rdzeniu WordPressa i po prostu o tym nie wiem.
(Zdarza się to częściej niż myślisz, ale może to być większy problem z mojej strony niż cokolwiek innego. Mimo to WordPress to duży program :).
Przypadek użycia czegoś takiego jest prosty:
- Mam identyfikator terminu, który został zapisany w bazie danych za pomocą innych środków (takich jak wybrany element w innym miejscu aplikacji, na przykład na pulpicie nawigacyjnym).
- Chcę wyświetlić nazwę taksonomii powiązaną z tym identyfikatorem terminu.
Koncepcyjnie uważam to za rodzaj odwróconego wyglądu. Zwykle możemy wziąć taksonomię i sprawdzić jej warunki. Ale taksonomia według identyfikatora terminu zmierza w innym kierunku.
Na szczęście jest to dość łatwe, jeśli podłączysz istniejący interfejs API. Sprawdź to :
<?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 );
}
Kod powinien być łatwy do naśladowania (jeśli nie dla komentarzy nad funkcją), ale zwróci albo pusty ciąg, albo nazwę taksonomii opartą na identyfikatorze terminu.
Ponieważ get_term pobiera obiekt WP_Term, możemy spojrzeć na właściwość taksonomii terminu, aby pobrać nazwę. Następnie przycinam ciąg na wszelki wypadek (jeśli pracuję z czyimś kodem, nigdy nie wiem, czy jest dopełniony, czy nie i nie chcę obcych znaków).
Niezależnie od tego, teraz masz dostępną funkcję, aby pobrać nazwę taksonomii według terminu ID. Jeśli zwracany jest pusty ciąg, oznacza to, że nie znaleziono nazwy taksonomii.