Seiten-Template für WordPress zur Auflistung von Unter-Seiten

Hi,

da ich gerade auf das Problem gestoßen bin, wie man einem Seiten-Template beibringen kann, Unter-Seiten aufzulisten und zu verlinken, und ich fast nur Schrott gefunden habe, hier das Template, das ich mir aus verschiedenen Quellen zusammengepuzzelt habe.

Ich habe mich vor allem hier bedient, musste aber ein paar Kleinigkeiten ändern. (Vor allem stimmt die Reihenfolge der beiden Codeschnipsel nicht, denn sie müssen genau umgekehrt angeordnet werden, und der von Pfeufer vorgeschlagene Mechanismus mit der manuell rausgefischten Seiten-ID war für meine Zwecke unbrauchbar – mit der dynamisch abgefragten ID und der Verlinkung der Beiträge und der eliminierten Anzeige der Seiteninhalte benutze ich es nun etwa so.)

Als kleine Randnotiz sei noch angemerkt, dass das Template bei mir in den ersten Versuchen aus unersichtlichen Gründen nie gefunden wurde. Erst, als ich es gelöscht und eines der vorhandenen Templates in /twentytwelve/page-templates/ dupliziert und dieses editiert habe, hat es funktioniert. Möglicherweise spielt hier der Zeichensatz eine entscheidende Rolle. Im Zweifelsfall also einfach eine vorhandene Templatedatei kopieren und den Code des eigenen Templates hineinpasten.

Die vorliegende Variante zeigt zusätzlich zu der Auflistung der Unterseiten auch den Inhalt der aktuellen Seite an. Das führt allerdings zu einem etwas „zerrupften“ Eindruck, wenn die Seite keinen Inhalt hat. In diesem Fall kann man den ersten have_posts-Block einfach auskommentieren.

Hier das Template (für TwentyTwelve, sollte aber auch für andere Themes grundsätzlich verwendbar sein):

<?php
/**
 * Template Name: Seitenindex
 *
 * @package WordPress
 * @subpackage Twenty_Twelve
 * @since Twenty Twelve 1.0
 */
 
get_header(); ?>
 
	<div id="primary" class="site-content">
		<div id="content" role="main">
 
		<?php ##### Diesen Block auskommentieren, wenn Seiteninhalte nicht notwendig sind... ?>
		<?php while ( have_posts() ) : the_post(); ?>
			<?php get_template_part( 'content', 'page' ); ?>
			<?php comments_template( '', true ); ?>
		<?php endwhile; // end of the loop. ?>
		<?php ##### ...bis hierhin ?>
 
		<?php $this_page_id = get_the_ID(); ?>
		<?php
			query_posts(array(
			    'post_parent' => $this_page_id ,
			    'post_type' => 'page',
			    'post_status' => 'publish',
			    'paged' => get_query_var('paged'),
				'posts_per_page' => 20,
				'orderby' => 'pagination',
				'order' => 'ASC'
			));
		?>
		<?php if(have_posts()) while(have_posts()) : the_post(); ?>
	  			<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
	     	<?php if(is_front_page()) { ?>
	          <h2 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
	      	<?php } else { ?>
	          <h1 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
	      	<?php } ?>
	  	</div><!-- #post-## -->
		<?php endwhile; ?>
 
 
 
		</div><!-- #content -->
	</div><!-- #primary -->
 
<?php get_sidebar(); ?>
<?php get_footer(); ?>

10 Gedanken zu „Seiten-Template für WordPress zur Auflistung von Unter-Seiten

  1. Kathrin

    Hey, ich bin auf deine seite gestossen, weil ich ein codefragment gegoogelt habe und ich sehe hier wird ein template vorgestellt, mit dem ich mich auch gerade befasse. Ich hab die aufgabe ünernommen, eine website upzudaten und eigentlich beschäftige ich mich lieber mit den grafiken, als dem wordpress, aber ich versuche gerade, es ein bisschen auf die reihe zu kriegen. hast du eventuell etwas zeit, mir da was zu erklären? Ich wäre dir mega dankbar. die seite ist
    http://www.atelieremilyvanolden.com/ es geht um ein template, welches unter „work“ zu sehen ist und welches ich geren auch auf „etalage“ anwenden würde, daran aber nun seit ein paar tagen scheitere… Beste Grüße, schöner blog übrigens 🙂 Kathrin

    Antworten
    1. Jens

      Hi,

      ich bin da selbst kein Profi und habe keine Ahnung, wie das bei deiner Seite umgesetzt ist. Es gibt aber einige gute WordPress-Info-Foren, an die du dich wenden kannst.

      Viel Erfolg damit!

  2. Kathrin

    lustiger Herold! also weisst du, ohne dir persönlich nahe treten zu wollen, meine erfahrung mit wordpress bis dato ist, dass egal was man sucht und versucht zu verstehen, man von einer page zur nächsten geschickt wird, man sich von link zu link hangelt und echt nicht an den kern des problems ran kommt oder zur abwechslung anschauliche informationen erhält. vielleicht liegt das auch an der denkstruktur derer, die sich das geniale wordpress auf die fahne schreiben. cheers!

    Antworten
    1. Jens

      Ein Forum ist dazu da, dass man solche Anliegen stellen kann und die Leute, die Zeit haben, sich damit auseinandersetzen können. Hier fragst du mich konkret um Hilfe. Mehr als „nein, weil ich es nicht kann, aber schau mal ins WordPress-Forum, wo die Spezialisten abhängen“ kann ich da auch nicht sagen.

  3. Kathrin

    Ich akzeptiere deine absage. Man fragt sich jedoch, wozu du dann solche artikel schreibst. da demonstrierst du schon ein gewisses wissen zu wordpress, oder nicht? warum du dieses wissen also öffentlich präsentierst, aber bei einer reaktion darauf so reagierst, versteh ich halt nicht ganz. Danke aber für die antwort.

    Antworten
    1. Jens

      Das steht sogar im Posting: Weil ich, genau wie du, ein Problem hatte, ewig keine Lösung gefunden habe, mir dann umständlich mit dreckigen PHP-Hintertürchen selber eine gebastelt habe, und, falls jemand anders mal das gleiche Problem haben sollte, sie publizieren wollte, damit andere sich den Aufwand sparen können. Viel Erfolg für den Projekt.

Kommentar verfassen