Hallo
ich habe eine teilweise fertiggestellte Wordpress-Installation übernommen und habe das Problem, dass die Struktur der Kategorien, wie sie mit $all_cat->term_id bestimmt werden, nicht passt. Das Array, das dort zurückgegeben wird entspricht nicht der Kategorien-Struktur, wie sie in Wordpress in der Kategorie-Verwaltung dargestellt werden. Genauer gesagt ist die vorhergehende ID in der Array-Liste nicht die richtige, sondern gehört zu einer ganz anderen Hauptkategorie. Somit kann nicht die vor/zurück-Navi nicht richtig funktionieren.
Hier der Quellcode, wie ich ihn übernommen habe:
foreach(get_categories() as $all_cat) {
$cat_ids[] = $all_cat->term_id;
}
$this_cat = get_query_var('cat');
$this_category_info = get_category( $this_cat );
$parent_id = $this_category_info->category_parent;
$grandparent_cat_info = get_category( $parent_id );
$grandparent_cat_id = $grandparent_cat_info->category_parent;
$this_cat_position = array_search( $this_cat, $cat_ids );
$prev_cat_position = $this_cat_position -1;
if( $prev_cat_position >=0 ) {
$prev_cat_id = array_slice( $cat_ids, $prev_cat_position, 1 );
$prev_cat_info = get_category($prev_cat_id[0]);
$prev_cat_parent = get_category($prev_cat_info->category_parent);
if($grandparent_cat_id == $prev_cat_parent->category_parent){
//Link
}
}
$next_cat_position = $this_cat_position +1;
if( $next_cat_position < count($cat_ids) ) {
$next_cat_id = array_slice( $cat_ids, $next_cat_position, 1 );
$next_cat_info = get_category($next_cat_id[0]);
$next_cat_parent = get_category($next_cat_info->category_parent);
if($grandparent_cat_id == $next_cat_parent->category_parent){
//Link
}
}
Alles anzeigen
Dadurch, dass halt die vorherige oder nächste Kategorie-ID einen anderen (und falschen) Parent haben kommt er oft nicht dazu, den Link auszugeben.
Ich bin für jeden Hinweis dankbar - sei es, wie man die Kategorie--Reihenfolge gerade biegt, oder was man sonst machen könnte.
Besten Dank im voraus