Support » Allgemeine Fragen » Beiträge bestimmter Kategorien auf einer Seite

  • Hallo,

    Ich bin gerade dabei mein eigenes wordpress theme zu schreiben. Es geht um die folgende webseite: http://ammantempel.net/home/ .
    Nun, wenn man auf die Navigation schaut, sieht man die Menüpunkte „Webdesign“ und „Videos/Photos“. Das sollen dann Portfolio Seiten werden. Das heisst, wenn ich ein Beitrag erstelle, und diesen dann in der Kategorie Webdesign oder Video zuordne, dass dieser Beitrag dann auch auf der jeweiligen Seite erscheint. Hoffe ihr könnt mir weiter helfen.

    BR
    The Dark Knight 😀

Ansicht von 12 Antworten - 1 bis 12 (von insgesamt 12)
  • Was ist jetzt genau deine Frage?

    Gruß, Torsten

    Thread-Starter the-dark-knight-22

    (@the-dark-knight-22)

    Meine Frage ist, wie setze ich es um, dass Beiträge mit bestimmten Kategorien, auf bestimmten Seiten angezeigt werden.

    Hallo,

    wenn das Seiten sind, kannst du im Template dir die Posts einsammeln und ausgeben.

    Dazu machst du dir mit WP_Query eine neue Loop und in dieser gibst du dir die Posts aus.

    http://codex.wordpress.org/Class_Reference/WP_Query

    Zum Beispiel die Posts der Kategorie 2

    $postlist = new WP_Query( 'cat=2' );
    if ( $postlist->have_posts() ) {
      // Es gibt Posts. Hier Öffnendes Zeug ausgeben z.B.ul  oder div.
      while ( $postlist->have_posts() ) {
        $postlist->the_post();
        // Jetzt kannst du mit the_title, the_content usw auf die Elemente
        // des Posts in der Loop zugreifen.
      }
      // Hier dann schliessendes Zeug, z.B. /ul oder /div
    }

    Oder packst einfach einen Kategorie-Link in das Menü … 😉

    Thread-Starter the-dark-knight-22

    (@the-dark-knight-22)

    Hallo Frank,
    Danke erstmal für deine Antwort. Habe den code in meinem template benutzt. Nur, da passiert nichts. So sieht das komplette aus:

    webdesign.php

    <? /*
    Template Name: Webdesign
    */
    ?>
    <? get_header(); ?>
    <div class="middle">
    
    		<div class="container">
    			<div class="content">
    <?
                $postlist = new WP_Query( 'cat=webdesign' );
    if ( $postlist->have_posts() ) {
      // Es gibt Posts. Hier Öffnendes Zeug ausgeben z.B.ul  oder div.
      while ( $postlist->have_posts() ) {
        $postlist->the_post();
        // Jetzt kannst du mit the_title, the_content usw auf die Elemente
        // des Posts in der Loop zugreifen.
      }
      // Hier dann schliessendes Zeug, z.B. /ul oder /div
    }
    ?>          
    
    			</div><!-- .content-->
    		</div><!-- .container-->
    
    <div class="clearfix"></div><!--.clearfix-->
    
    	</div><!-- .middle-->
    
    			<div id="back-top">
    				<a href="#top"><span></span></a>
    			</div>
    
    </div><!-- .wrapper -->
    
    <? get_footer(); ?>

    Hallo Torsten,
    Ja das Problem ist, habe das Menü auch dynamisch gemacht, also kann ich ja nicht den Kategorie Link da nicht dynamisch einfügen.

    Hallo,

    was soll das denn auch ausgeben? Da wo meine Kommentare sind

    // Jetzt kannst du mit the_title, the_content usw auf die Elemente
        // des Posts in der Loop zugreifen.

    Müsstest du schon konkret das Ausgeben was du halt haben willst.
    Da wird eine neue Loop erzeugt, so wie auch die Loop in der Index funktioniert.

    http://codex.wordpress.org/The_Loop

    Und wenn du mit dem Namen der Kategorie statt der ID arbeitest ist der parameter nicht cat sonder category_name
    Siehe: http://codex.wordpress.org/wp_query

    Gruß
    Frank

    Thread-Starter the-dark-knight-22

    (@the-dark-knight-22)

    Danke dir für deine Hilfe! Und es funktioniert auch.

    <?
                $postlist = new WP_Query( 'category_name=webdesign&showposts=5' );
    if ( $postlist->have_posts() ) {
      // Es gibt Posts. Hier Öffnendes Zeug ausgeben z.B.ul  oder div. ?>
    
      <div class="cat-portfolio">
     <? while ( $postlist->have_posts() ) {
        $postlist->the_post(); ?>
    
    	<a href="<? the_permalink() ?>" rel="bookmark"><? the_title(); ?></a>
    	<? the_content(__('(weiterlesen...)'));
        // Jetzt kannst du mit the_title, the_content usw auf die Elemente
        // des Posts in der Loop zugreifen.
      }
      // Hier dann schliessendes Zeug, z.B. /ul oder /div ?>
    
      </div>
    <? }
    ?>

    Nun die nächste Frage. Wie du schon sicherlich sehen kannst, möchte ich, dass nur 5 Beiträge pro Seite angegben wird. Nun wie füge ich dann den code für <<vor und nächste>> ein?

    Thread-Starter the-dark-knight-22

    (@the-dark-knight-22)

    Und Jeweils die Seitennummern, also das dann unten folgendes steht:

    <<vor 1 2 3 4 5 nächste>>

    Moin,

    Dann musst du auch die aktuelle Seite in die Query aufnehmen.
    http://codex.wordpress.org/wp_query#set-paged

    Für vor und zurück in der Liste gibt es http://codex.wordpress.org/Next_and_Previous_Links

    Für Anfang, 1,2,3,…,n,Ende gibt es, glaub ich, nichts. Das musste schnell selbst bauen. Aus dem found_posts Wert der WP_Query und der Anzahl der Posts pro Seite weißt du ja wieviele Seiten es dann sein müssen.

    Gruß
    Frank

    Thread-Starter the-dark-knight-22

    (@the-dark-knight-22)

    Also das mit der pagination mit dem next und previous habe ich schon hinbekommen. Nur wie bekomme ich hin, dass dies nur für die posts der jeweiligen Kategorien gilt. Weil momentan geht er dann alle posts durch.

    <div class="pagination">
    <div class="alignleft">
    <?php previous_post('&laquo; %',
     'Vor ', 'no'); ?>
    </div>
    <div class="alignright">
    <?php next_post('% &raquo; ',
     'N&auml;chste ', 'no'); ?>
    </div>
    </div>
    Thread-Starter the-dark-knight-22

    (@the-dark-knight-22)

    Hab was ausprobiert, aber das funktioniert nicht:

    <?			$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
            query_posts("category_name=<?php wp_get_post_categories( $post_id, $args );&showposts=2&paged=".$paged);
    
                $postlist = new WP_Query( 'category_name=webdesign&showposts=2' );
    if ( $postlist->have_posts() ) {
      // Es gibt Posts. Hier Öffnendes Zeug ausgeben z.B.ul  oder div. ?>
    
      <div class="cat-portfolio">
     <? while ( $postlist->have_posts() ) {
        $postlist->the_post(); ?>
    
    	<a href="<? the_permalink() ?>" rel="bookmark"><? the_title(); ?></a>
    	<? the_content(__('(weiterlesen...)'));
        // Jetzt kannst du mit the_title, the_content usw auf die Elemente
        // des Posts in der Loop zugreifen.
      }
      // Hier dann schliessendes Zeug, z.B. /ul oder /div ?>
    
      </div>
    <? }
    ?>

    Hallo,

    ich kann dir nicht folgen. Die Paginierung der Liste hat doch nichts mit Prev/Next_posts zu tun.

    Prev/next_posts sind veraltet (deprecated) und sollten nicht ver verwendet werden. Benutze lieber previous_post_link / next_post_link

    Der in_same_term Parameter müsste die weiterhelfen (ohne das ich es jetzt ausprobiert habe)

    Gruß
    Frank

Ansicht von 12 Antworten - 1 bis 12 (von insgesamt 12)
  • Das Thema „Beiträge bestimmter Kategorien auf einer Seite“ ist für neue Antworten geschlossen.