Obține ID-ul categoriei din slug-ul categoriei (nu funcționează)

11 apr. 2013, 23:07:41
Vizualizări: 26.3K
Voturi: 11

Am găsit acest cod, care aparent obține ID-ul categoriei din slug-ul categoriei:

  $category = get_category_by_slug('category-name'); 
  $id = $category->term_id;

Dar când încerc să-l implementez în următorul cod, nu funcționează:

<?php
// listează termenii într-o taxonomie personalizată folosind wp_list_categories 

$category = get_category_by_slug( 'military' );

$args = array(
  'taxonomy'     => 'product_cat',
  'orderby'      => 'name',
  'show_count'   => 0,
  'pad_counts'   => 0,
  'hierarchical' => 1,
  'title_li'     => '',
  'depth'        => 2,
  'child_of'     => $category->term_id
);

?>

<ul class="test">
<?php wp_list_categories( $args ); ?>
</ul>

Încerc să afișez doar categoriile copil ale unei categorii părinte specifice. Dacă introduc direct ID-ul categoriei pentru "child_of", atunci funcționează perfect. Dar folosind codul de mai sus, continuă să afișeze toate categoriile. Din păcate, trebuie să o fac prin intermediul slug-ului, nu prin ID.

Aveți vreo idee?

0
Toate răspunsurile la întrebare 1
5
21

Nu poți folosi get_category_by_slug() cu o taxonomie personalizată. Trebuie să folosești get_term_by().

$category = get_term_by( 'slug', 'military', 'product_cat' );
11 apr. 2013 23:13:48
Comentarii

A, nu mi-am dat seama de asta. Mulțumesc! Totuși, am încercat să înlocuiesc linia $category = get_category_by_slug... pentru a se potrivi cu ce ai scris mai sus, dar tot nu a funcționat. Trebuie să modific și linia "child_of"?

LBF LBF
11 apr. 2013 23:24:10

Poți să afișezi obiectul $category pentru a te asigura că există. var_dump( $category ); După apelul către get_category_by_slug().

Chris_O Chris_O
11 apr. 2013 23:28:11

Am făcut dump-ul și am primit asta: object(stdClass)#771 (10) { ["term_id"]=> string(3) "144" ["name"]=> string(31) "Military Bands" ["slug"]=> string(11) "military" ["term_group"]=> string(1) "0" ["avhec_term_order"]=> string(1) "0" ["term_taxonomy_id"]=> string(3) "144" ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(238) "Watch Straps" ["parent"]=> string(1) "0" ["count"]=> string(3) "163" }

LBF LBF
12 apr. 2013 01:19:38

Ah! Am scris greșit 'category' în codul meu când am introdus noua linie. Argh. Mereu greșelile stupide sunt problema. Mulțumesc -- a funcționat!

LBF LBF
12 apr. 2013 01:30:14

Vezi de exemplu fără litere mari țipătoare: get_category_by_slug cum să obții ID-ul.

Charles Charles
2 iun. 2016 17:50:30