Verifică dacă o categorie este părinte din ID-ul său în WordPress

6 mar. 2011, 02:49:12
Vizualizări: 19.5K
Voturi: 2

Întrebarea este simplă (nici eu nu știu răspunsul ;)
Vreau să verific dacă o categorie are subcategorii (sau este strămoș) folosind doar ID-ul categoriei într-o funcție.
Exemplu:
function check_category ($catid){<br/>............<br/>...//true dacă este strămoș, false dacă nu<br/>return $result;<br/>}
Notă: Pot folosi doar parametrul cat-id pentru funcție pentru că trebuie să o folosesc în functions.php
Mulțumesc anticipat...

0
Toate răspunsurile la întrebare 2
6

Puteți face ceva de genul acesta:

function category_has_parent($catid){
    $category = get_category($catid);
    if ($category->category_parent > 0){
        return true;
    }
    return false;
}

și să o folosiți astfel:

if (category_has_parent('22')){
   //true - există o categorie părinte
}else{
   //false - această categorie nu are părinte
}

Actualizare:

pentru a verifica invers (dacă o categorie are subcategorii) puteți folosi get_categories

$children = get_categories(array('child_of' => id,'hide_empty' => 0));
if (count($children) > 1){
    //are subcategorii
}else{
    //nu are subcategorii
}
6 mar. 2011 09:50:00
Comentarii

Primul fragment poate fi probabil simplificat la return $category->category_parent.

Rarst Rarst
6 mar. 2011 21:58:21

@Bainternet, îmi pare rău dar am pus întrebarea incorect. Vreau să aflu dacă această categorie ($catid) este cea mai din jos? Adică, dacă o categorie nu are copii, atunci este cea mai din jos... Mulțumesc anticipat...

Alper Alper
6 mar. 2011 23:06:28

Deci ai nevoie de opusul acestui lucru, în loc să verifici dacă are părinte vrei să verifici dacă are categorii copil?

Bainternet Bainternet
6 mar. 2011 23:33:01

@Bainternet, da și am rezolvat problema cu: $catlist = wp_list_categories('echo=0&orderby=id&hide_empty=0&title_li=&child_of='.$categoryid); if (($catlist)!='<li>No categories</li>')

Alper Alper
7 mar. 2011 02:42:11

@Alper, verifică din nou răspunsul, am adăugat o metodă mult mai elegantă de a face asta.

Bainternet Bainternet
7 mar. 2011 03:01:21

@Bainternet, woaw... e perfect (și o idee foarte inteligentă), îți mulțumesc foarte mult...

Alper Alper
7 mar. 2011 04:41:08
Arată celelalte 1 comentarii
2

Consultă Codex-ul: http://codex.wordpress.org/Function_Reference/get_category_parents

// returnează true sau false    
function check_category( $cat_id ){
    $parent = '';
    $parent = get_category_parents( $cat_id );
    return empty($parent);
}
6 mar. 2011 12:02:25
Comentarii

Nu cred că acest lucru va funcționa, din punct de vedere mecanic get_category_parents() va avea întotdeauna în output cel puțin categoria însăși.

Rarst Rarst
6 mar. 2011 22:00:30

Îmi cer scuze, dar am pus întrebarea incorect. Vreau să aflu dacă această categorie ($catid) este cea mai din capăt? Adică, dacă o categorie nu are copii, atunci este cea mai din capăt... Mulțumesc anticipat...

Alper Alper
6 mar. 2011 23:06:46