Mõnikord on projekti kallal töötades tore, kui oleks API-funktsioon, mis aitaks saavutada kõike, mida on vaja teha. Näide: võimalus hankida taksonoomiat termini ID järgi.
Tõsi, seda pole raske teha, kuid võimalus hankida teavet olemasolevatest funktsioonidest on alati tore.
Aga kui see pole võimalik, kirjutame oma viisi, kuidas seda teha, eks?
Taksonoomia hankimine termini ID järgi
Kui ma kavatsen midagi sellist teha, käivitan selle idee üldiselt paaril teisel arendajal, et veenduda, et mul ei puudu mõni funktsioon, mis WordPressi tuumas eksisteerib, ja ma lihtsalt ei tea sellest.
(Seda juhtub rohkem, kui arvate, kuid see võib minu jaoks olla suurem probleem kui miski muu. Sellegipoolest on WordPress suur tarkvara :).
Millegi sellise kasutusjuht on lihtne:
- Mul on termini ID, mis on andmebaasi salvestatud mõnel muul viisil (nt valitud elemendiga mujal rakenduses, näiteks armatuurlaual).
- Soovin kuvada selle termini ID-ga seotud taksonoomia nime.
Kontseptuaalselt arvan, et see on vastupidine välimus. Tavaliselt võime võtta taksonoomia ja otsida selle tingimusi. Kuid termini ID järgi taksonoomia järgi läheb teises suunas.
Õnneks on see piisavalt lihtne, kui loobute olemasolevast API- st. Kontrollige seda :
<?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 );
}
Kood peaks olema hõlpsasti jälgitav (kui mitte funktsiooni kohal olevate kommentaaride jaoks), kuid see tagastab kas tühja stringi või termini ID alusel taksonoomia nime.
Kuna get_term hangib WP_Term objekti, võime nime haaramiseks vaadata termini taksonoomia omadust. Triimin siis stringi igaks juhuks ära (kui töötan kellegi teise koodiga, ei tea kunagi, kas see on polsterdatud või mitte ja kõrvalisi märke ei taha).
Sellest hoolimata on teil nüüd saadaval funktsioon taksonoomia nime haaramiseks termini ID järgi. Kui tagastatakse tühi string, siis taksonoomia nime ei leitud.