J'ai lu tous les articles sur l'affichage des termes d'une taxonomie personnalisée et cela ne fonctionne toujours pas. Ok, alors voici le code:
<?php
//part of template-offer.php
$taxonomy = 'brand';
$term_args=array(
'hide_empty' => false,
'orderby' => 'name',
'order' => 'ASC'
);
$tax_terms = get_terms($taxonomy,$term_args);
echo $tax_terms;
?>
Et sur la sortie, je ne reçois qu'un tableau vide. Je regarde le code et ne peux pas savoir pourquoi. J'ai à la fois mon post personnalisé et ma taxonomie, j'ai créé quelques posts et termes:
<?php
//creating a custom taxonomy called 'brand'
add_action( 'init', 'create_custom_taxonomies', 0 );
function create_custom_taxonomies() {
$labels = array(
'name' => _x( 'Brands', 'taxonomy general name' ),
'singular_name' => _x( 'Brand', 'taxonomy singular name' ),
'search_items' => __( 'Search Brands' ),
'all_items' => __( 'All Brands' ),
'parent_item' => __( 'Parent Brand' ),
'parent_item_colon' => __( 'Parent Brand:' ),
'edit_item' => __( 'Edit Brand' ),
'update_item' => __( 'Update Brand' ),
'add_new_item' => __( 'Add New Brand' ),
'new_item_name' => __( 'New Brand Name' ),
'menu_name' => __( 'Brand' ),
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'brand' ),
);
register_taxonomy( 'brand', null , $args );
}
//creating a custom post type that is using 'brand' taxonomy
function create_post_type() {
register_post_type( 'products',
array(
'labels' => array(
'name' => __( 'Products' ),
'singular_name' => __( 'Product' ),
'add_new' => _x('Add New', 'products'),
'add_new_item' => __('Add New Product'),
'edit_item' => __('Edyt Product'),
'new_item' => __('New Product'),
'view_item' => __('View Product'),
'search_items' => __('Search Product'),
'not_found' => __('Nothing found'),
),
'taxonomies' => array('brand'),
'supports' => array('title', 'editor', 'thumbnail'),
'public' => true,
'has_archive' => true,
'show_ui' => true,
)
);
}
add_action( 'init', 'create_post_type' );
?>
Votre aide sera très appréciée. Bonne journée, Patryk
get_terms
retourne un tableau d'objets . Vous ne pouvez pas faire écho à un tableau, si vous le faites, vous obtiendrez simplement Array()
. Ce que vous pouvez faire est print_r($array)
ou var_dump($array)
ou echo json_encode($array)
pour voir les données qu’il contient.
Sinon, pour obtenir des éléments uniques, par exemple le nom, à partir des objets, vous devez passer $tax_terms
à travers une boucle foreach
pour obtenir les objets de chaque terme, puis à partir de là, vous pouvez également faire écho à l'objet spécifique que vous recherchez.
Quelque chose comme ça va marcher
$tax_terms = get_terms( $taxonomy, $args );
foreach ( $tax_terms as $tax_term ) {
echo $tax_term->name;
}