Obține categoria părinte de top

25 apr. 2015, 15:23:50
Vizualizări: 13.7K
Voturi: 5

Structura categoriilor mele este următoarea:

- Categorie de Top
---- Subcategorie 1
------- Sub Subcategorie 1.1
------- Sub Subcategorie 1.2
------- Sub Subcategorie 1.3
---- Subcategorie 2
------- Sub Subcategorie 2.1
------- Sub Subcategorie 2.2
------- Sub Subcategorie 2.3

Mă aflu pe un articol din Sub Subcategorie 1.2, deci ierarhia este:

Categorie de Top -> Subcategorie 1 -> Sub Subcategorie 1.2 -> Articolul curent

NB: În articol sunt selectate DOAR "Subcategorie 1" și "Sub Subcategorie 1.2" ca categorii ("Categorie de Top" nu este bifată).

Cum pot obține slug-ul Categoriei de Top ("top-category"), navigând înapoi?

Mulțumesc!

0
Toate răspunsurile la întrebare 2
0

get_ancestors() returnează un array care conține părinții unui obiect dat.

Acest exemplu are două categorii. Părintele cu ID-ul 447 și copilul cu ID-ul 448 și returnează ierarhia categoriilor (cu ID-uri):

get_ancestors( 448, 'category' );

returnează:

Array
(
    [0] => 447
)

Pagina Codex pentru get_ancestors

22 dec. 2015 01:16:26
0

get_ancestors()

Este metoda corectă pentru a obține toate categoriile părinte ale unei categorii specifice în ordinea ierarhică, astfel încât pentru a obține părintele de nivel cel mai înalt puteți extrage ultimul element din tabloul returnat astfel:

// obținerea tuturor strămoșilor categoriilor
$ancestor_cat_ids = get_ancestors( $queried_cat_id, 'category');

// obținerea ultimului element din tabloul de id-uri returnat de funcția get_ancestors()
$highest_ancestor = $ancestor_cat_ids[count($ancestor_cat_ids) - 1];
20 sept. 2019 10:28:23