Hauptkategorie zeigt alle Unterkategorien mit Artikel an

Die Hauptkategorie soll alle Unterkategorien mit einigen Artikeln anzeigen. Childcategories on a parent category page. Hier eine Lösung.

 
 Childcategories on parentcategory
childcategories on parentcategory

Du möchtest, dass man beim Klick auf die Hauptkategorie die Unterkategorien sieht mit einigen ihrer Artikel und einen *weiterlesen* Link, der zur jeweiligen Unterkategorie führt.

Hauptkategorie keinen Artikel

Dies ist nur sinnvoll, wenn man in der Hauptkategorie keinen Artikel hat. Aber mancher mag dies so, weil er so wichtige Worte in der URL unterbringt und seinen Besuchern genug Überblick durch die Aufteilung bieten kann.

Umblättern – Pagination

Ich habe diese Auflistung der Unterkategorien mit Artikeln absichtlich nicht zum *Umblättern* hergerichtet, weil dies ja wiederum den Überblick schmälert und 2. programmiertechnisch ein wenig mehr Aufwand wäre, der wegen des fehlenden Überblicks für die Besucher wiederum umsonst wäre. :zwinker:

Category.php html und Sprache anpassen

Die erstellte category.php stell ich als .zip Datei zur Verfügung. Ich ersuche das HTML anzupassen und außerdem ist das Template für Übersetzungen vorbereitet, da muss man dann sicher den “Projektnamen” ändern.

Diese category.php bietet sowohl Unterkategorien auf der Hauptkategorieseite wie eine ganz normale Kategorienansicht, die den *weiterlesen Link* zeigt.

Dies hat den Vorteil, dass man völlig frei Kategorien ohne Unterkategorien haben kann, aber auch Hauptkategorien mit Unterseiten, die man dann eben in der Hauptkategorie herzeigt.

unterschiedliche templates für unterschiedliche Kategorien

Die Mischung:1x Unterkategorien auf der Haupt-Kategorie anzeigen und 1x nicht ist höchst verwirrend für den Besucher, daher rate ich davon ab. Außerdem kann man dies nicht automatisieren, weil WP einfach nicht weiß, was Du Dir als Admin denkst . ;)

Wer mag kann sich den Code hier ansehen.

Es ist viel, ich warne ;)

Download der Hauptkategorie zeigt Unterkategorien category.php als .zip Datei.

 
<?php get_header(); ?>		
<?php
$numposts = 3; // # posts to display; -1 for all
$cat_obj = $wp_query->get_queried_object();
if( $cat_obj->parent ) :
	$child_posts = get_posts('category=' . $cat_obj->term_id . '&numberposts=' . $numposts);
	if( $child_posts ) :?>
<h3 class="archive"><?php _e('Archive for','mtsdreaming'); ?><?php echo $cat_obj->name; ?></h3>		
<ul>
  <?php foreach( $child_posts as $post ) : ?>		
  <li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
  <?php endforeach; ?>		
</ul>
<?php endif; else : ?>
<h3 class="archive"><?php _e('Archive for','mtsdreaming'); ?><?php echo $cat_obj->name; ?></h3>
<div <?php post_class(); ?>> 
<?php
 	global $wpdb;
 	$categories = $wpdb->get_results("SELECT $wpdb->terms.term_id, $wpdb->terms.name from $wpdb->terms INNER JOIN $wpdb->term_taxonomy ON $wpdb->terms.term_id = $wpdb->term_taxonomy.term_id WHERE taxonomy = 'category' AND parent = '{$cat_obj->term_id}' ORDER BY name ASC");
 	foreach($categories as $category) :
 		$child_posts = get_posts('category=' . $category->term_id . '&numberposts=' . $numposts);
 		if( $child_posts ) :?>
  <h3 class="archive"><?php echo $category->name; ?></h3> 		
  <ul class="clearfix">   
    <?php foreach( $child_posts as $post ) : 		setup_postdata($post);?> 		
    <li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>  
    <br /><?php echo strip_tags(get_the_excerpt()); ?></li>   
    <?php endforeach; endif; ?>
    <li class="readmore">
      <?php _e(' &raquo; &raquo; more Articles:','mtsdreaming'); ?>
      <?php the_category(',') ?></li>     
  </ul> 
  <?php endforeach; endif; ?>
</div><!--end of childcategories on parentcategory-->    
<?php if( !$child_posts ) :  if (have_posts()) : ?>		 
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php if (is_category()) { ?>				 		
<p class="archive"><?php echo strip_tags(category_description()); ?></p>	
<?php } ?>	
<?php while (have_posts()) : the_post(); ?>
<div <?php post_class(); ?>> 
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>  		   
  <?php the_content("&raquo;&raquo;  " . the_title('', '', false)); ?> 		   
  <p class="metadata">				     
    <?php _e('Filed under:','mtsdreaming'); ?>      
    <?php the_category(',') ?> |      
    <?php if (get_the_tags()) the_tags('',',',' |'); ?>     
    <?php comments_popup_link(__('No Comments','mtsdreaming'), __('1 Comment','mtsdreaming'), __('% Comments','mtsdreaming'), '', __('Comments off','mtsdreaming')); ?>     
    <?php edit_post_link(__('edit','mtsdreaming'),' | '); ?>   
  </p>    
</div><!--end of post-->		
<?php endwhile;endif;?>
<?php if (function_exists('wp_page_numbers')) {
  wp_page_numbers();
echo '<br class="clear"/>';
}  elseif (!function_exists('wp_page_numbers')){ 
echo'<p class="navigate">';
 next_posts_link(__('&laquo; Previous Entries |','mtsdreaming')) ; 
   previous_posts_link(__('| Next Entries &raquo;','mtsdreaming')) ; 
 echo'</p>';}?> 	
<?php  endif;?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Bei Fragen einfach fragen.

Über einen Bookmark oder einen Link freu ich mich,wenn es hiflreich war. Viel Spaß!
7 Kommentare zu "Hauptkategorie zeigt alle Unterkategorien mit Artikel an"
  1. Hallo Monika,

    klasse Artikel!

    Er trifft schon fast das was ich suche, aber leider nur fast. Wenn ich Artikel in einer Unterkategorie anklicke, dann geht in der Sidebar in der Artikelansicht der Kategorienbaum zu. Wie kann ich denn die Kinder der Hauptkategorie anzeigen lassen, wenn ich einen Artikel aus einer der Unterkategorien lese? (vgl. website…)

    Viele Grüße,
    Andreas

  2. ja genau das hab ich gesucht, doch leider wird bei meiner mehrsprachigen seite die unterkategorie nicht übersetzt.
    ich benutze qtranslate.

    ich glaube das problem liegt in dieser zeile.

    name; ?>

    hab aber keinen schimmer wie es zu beheben wäre.

  3. Vielen, vielen Dank. Nach diesem Code suche ich schon seit Tagen.

  4. Hi super Script….

    Ich versuche name; ?> klickbar zu machen…
    Für´s erste würde es auch reichen wenn man duch die querry auch noch “slug” abfragen könnte… soweit reichts dann aber bei mir leider doch nciht ;-)

    hast du eine Idee?

    Danke

1 Ping zu "Hauptkategorie zeigt alle Unterkategorien mit Artikel an"
  1. wp-popular.com » Blog Archive » Hauptkategorie zeigt alle Unterkategorien mit Artikel an
    [...] See the original post: Hauptkategorie zeigt alle Unterkategorien mit Artikel an [...]