Come ottenere l'ID della categoria dal nome della categoria?

22 lug 2012, 00:18:17
Visualizzazioni: 43.7K
Voti: 6

Ho alcune categorie con lo stesso nome [alcune di queste sono sotto-categorie]. E voglio ottenere un array di ID per un determinato nome di categoria. Ho provato questo:

$term = get_term_by('name', $cat_name, 'category');

ma sembra che get_term_by() restituisca solo il primo termine che corrisponde alla query.

0
Tutte le risposte alla domanda 2
1
14

Utilizza get_terms(), che internamente fa uso di WP_Term_Query. Per una lista completa di tutti i parametri disponibili, consulta la documentazione di WP_Term_Query::__construct

// Ottieni gli *ID* dei termini con nome che *corrisponde* a "my_name"
$term_ids = get_terms([
    'fields' => 'ids',
    'taxonomy' => 'category',
    'name' => 'my_name',
    'hide_empty' => false,
]);

// Ottieni gli *oggetti* termine con nome che *corrisponde* a "my_name"
$terms = get_terms([
    'taxonomy' => 'category',
    'name' => 'my_name',
    'hide_empty' => false,
]);

// Ottieni gli *oggetti* termine con nome che *contiene* "my_name"
$terms = get_terms([
    'taxonomy' => 'category',
    'name__like' => 'my_name',
    'hide_empty' => false,
]);
22 lug 2012 02:15:15
Commenti

Grazie mille. Prima della tua risposta ho fatto: `$id = array(); $args = array(
'hide_empty' => 0, );

$categories = get_categories( $args );

foreach($categories as $c){ if ($c->name == $cat_name){ $id[] = $c->term_id; } }`

Shimon S Shimon S
22 lug 2012 14:06:42
0
10

get_cat_ID( $cat_name ) può fare al caso tuo! Esempio:

<?php
     // Ottiene l'ID della categoria dal nome
     $category_id = get_cat_ID('Nome Categoria');
     
     // Prepara la query per i post della categoria specifica
     $q = 'cat=' . $category_id;
     
     // Esegue la query
     query_posts($q);
     
     // Loop standard di WordPress
     if (have_posts()) : while (have_posts()) : the_post();
     
     // Mostra il contenuto del post
     the_content();
     
     endwhile; endif;
?>

Maggiori dettagli!

31 dic 2012 08:36:58