Elencare la categoria 'child_of' tramite slug invece che ID

1 feb 2011, 13:48:17
Visualizzazioni: 19.4K
Voti: 4

Voglio elencare le categorie appartenenti a una genitore. Il problema è che usare gli ID delle categorie non è pratico e rende il codice meno comprensibile.

Esiste un modo più semplice per elencare le categorie figlie di un genitore, simile al metodo predefinito fornito nel codex di WP?

<?php wp_list_categories('child_of=8'); ?> //ma quale categoria è '8'?!

<?php wp_list_categories('child_of=clienti'); ?> //molto più chiaro, ma non funziona

Preferirei evitare di usare un'altra query nel loop, ma per rendere il codice comprensibile ad altri sviluppatori, potrei doverlo fare.

0
Tutte le risposte alla domanda 2
1

Puoi ottenere l'ID dallo slug abbastanza facilmente:

$category = get_category_by_slug( 'clients' );
wp_list_categories('child_of='.$category->term_id);
1 feb 2011 14:13:11
Commenti

Stavo per suggerire qualcosa di simile usando get_term_by.. get_cat_ID è semplicemente più facile da usare perché non c'è bisogno di fare riferimento alle proprietà dell'oggetto. +1 da parte mia comunque, resta una risposta valida!.. :)

t31os t31os
1 feb 2011 14:19:52
4

Vuoi ottenere tutti i figli di una determinata categoria? Questo è essenzialmente lo scopo del parametro child_of, che recupera tutti i discendenti di un termine (categoria).

Se invece vuoi solo i termini che hanno un genitore diretto specifico, allora dovresti utilizzare il parametro parent.

Per quanto riguarda l'uso di un ID, questo dovrebbe funzionare...

<?php
// Ottieni l'ID per la categoria specificata
$cat_term_id = get_cat_ID( 'my-cat' );

wp_list_categories("parent=$cat_term_id");
//wp_list_categories("child_of=$cat_term_id");
?>

Documentazione di get_cat_ID.


Spero che questo ti sia d'aiuto...

1 feb 2011 14:14:14
Commenti

NOTA: Anche get_cat_ID si aspetta lo slug, e non il nome, come con get_category_by_slug .. (tuttavia questo ti darà solo l'ID, e non un oggetto).

t31os t31os
1 feb 2011 14:16:32

ehm, penso che la tua nota sia al contrario :) get_cat_ID() si aspetta il nome, get_category_by_slug() si aspetta lo slug.

Rarst Rarst
1 feb 2011 14:20:09

@Rarst - Scusa, errore mio, in effetti si aspetta il nome (avevo solo questo ricordo nella testa riguardo a una funzione di categoria che è documentata per aspettarsi un nome, ma in realtà si aspetta lo slug - ho fatto confusione).. ;)

t31os t31os
1 feb 2011 14:36:49

Anch'io ricordo che qualche funzione fosse così, ma non è nessuna di queste due... evviva per avere troppe funzioni :)

Rarst Rarst
1 feb 2011 15:10:47