2017-07-17 2 views
0

J'ai enregistré quelques taxonomies et je veux récupérer leurs étiquettes de taxonomie pour en énumérer quelques unes. La liste n'est pas liée à une publication ou à une catégorie et peut apparaître pratiquement n'importe où (simple, archive, etc.).Liste de certaines taxonomies

Je veux créer une variable/un tableau des taxonomies en question pour que je puisse l'utiliser ailleurs:

$tax_names = array('tax_01', 'tax_02', 'tax_03'); 

Ce code fonctionne, mais émet seulement une taxonomie:

$tax_args = array(
    'name' => 'tax_01' 
); 

$output = 'objects'; 

$taxonomies = get_taxonomies($tax_args, $output); 

if ($taxonomies) { 
    foreach ($taxonomies as $taxonomy) { 
    echo '<p>' . $taxonomy->label . '</p>'; 
    } 
} 

Cette ne fonctionne pas:

$tax_args = array(
    'name' => $tax_names // using the array created above 
); 

$output = 'objects'; 

$taxonomies = get_taxonomies($tax_args, $output); 

if ($taxonomies) { 
    foreach ($taxonomies as $taxonomy) { 
    echo '<p>' . $taxonomy->label . '</p>'; 
    } 
} 

Toute aide appréciée.

Répondre

0

Si vous voulez l'utiliser partout comme ça, vous pouvez créer une fonction dans le functions.php

function retrieve_my_terms() { 

global $terms; 

$terms = get_terms('taxonomy'); 

foreach ($terms as $term) { 
    $option = $term->name; 
    return $option; 
} 
} 

Et puis dans votre fichier php, vous pouvez appeler la fonction comme

retrieve_my_terms(); 

EDIT :

Vous pourriez essayer de faire quelque chose comme ceci - je ne l'ai pas testé correctement mais cela pourrait vous être utile.

function retrieve_my_terms($termArray) { 

    global $terms; 

    $terms = $termArray; 

    foreach ($terms as $term) { 
     $option = get_term_by($term); 
     return $option; 
    } 
} 


$tax_names = array('tax_01', 'tax_02', 'tax_03'); 
retrieve_my_terms($tax_names); 
+0

Merci pour votre aide! Cela fonctionne, mais il renvoie les termes de taxonomie. Je veux faire écho aux étiquettes des taxonomies stockées dans un tableau, par exemple: '$ tax_names = array ('tax_01', 'tax_02', 'tax_03');' Les résultats devraient être des étiquettes de taxonomie: Taxonomy 01, Taxonomy 02 , Taxonomy 03. – george

+0

J'ai mis à jour ma réponse là-bas ... –