A címben jelzett igényre semmilyen működő widgetet nem találtam (mert hogy sidebar-ba kellett), ezért az alábbi megoldást választottam, ami második körben is működőnek tűnik.
Telepítettem és aktiváltam a PHP Code Widget plugint. Ahogy a neve is mutatja, PHP kódot lehet widgetként a sidebar-ba pakolni.
A widget-ben akkor kellett tartalmat megjeleníteni, ha
- a felső menüsorból egy kategória lett kiválasztva
- egy kategorizált bejegyzést van megjelenítve single post-ként.
Archívum és a Search közvetlenül nem érhető el, ezért ezzel nem is foglalkoztam.
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
<?php
if (is_category()) {
$cat = get_query_var('cat');
} else {
$post = $GLOBALS["posts"][0];
$postid = $post->ID;
$categories = get_the_category($postid);
$cat = $categories[0]->cat_ID;
}
if ($cat!=-1 && !empty($cat)) {
$this_category = get_top_parent_category($cat);
$this_category = wp_list_categories('hide_empty=1&hierarchical=true&orderby=name&show_count=0&title_li=&use_desc_for_title=1&child_of='.$this_category."&echo=0");
if($this_category !='<li>No categories</li>')
{
echo '<ul>'.$this_category.'</ul>';
}
}
function get_top_parent_category($cat){
$curr_cat = get_category_parents($cat, false, '/' ,true);
$curr_cat = explode('/',$curr_cat);
$idObj = get_category_by_slug($curr_cat[0]);
return $id = $idObj->term_id;
}
?>
[/pastacode]