Featured Posts Code – Wiederholte hervorgehobene Posts

Ich bin sooo nah daran, das zum Laufen zu bringen, aber ich habe noch ein Problem.

  1. Der angegebene Posts-Code wiederholt sich vor und nach jedem Post.

Jede Hilfe würde sehr geschätzt werden. Der Code unten ist, was gerade in meiner Schleife ist.

NEUER CODE pro CHIP

 3, 'category_name' => 'featured' ) ); // Open featured posts loop if ( $featured_query->have_posts() ) : while ( $featured_query->have_posts() ) : $featured_query->the_post(); // Featured posts loop markup goes here ?> <div class="featureportfolio"> <a href="https://wordpress.stackexchange.com/questions/48397/featured-posts-code-repeated-featured-posts/" rel="bookmark" class="title">  
<a href="https://wordpress.stackexchange.com/questions/48397/featured-posts-code-repeated-featured-posts/" rel="bookmark" class="title">

Dies “funktioniert” abzüglich der Tatsache, dass NUR gekennzeichnete Beiträge jetzt auf der Hauptseite angezeigt werden.

Solutions Collecting From Web of "Featured Posts Code – Wiederholte hervorgehobene Posts"

Nach der Diskussion im Chat und dem Anzeigen der übergeordneten index.php-Datei:

http://pastebin.com/27r0FJ3x

Die Hauptschleife in der Schleife.php ist eigentlich gar nicht die Hauptschleife:

 
< ?php get_template_part('breadcrumbs'); ?> < ?php if ( have_posts() ) { ?> < ?php while ( have_posts() ) { ?> < ?php the_post(); ?> < ?php get_template_part( 'loop', get_post_format() ); ?> < ?php } // end while ?> < ?php get_template_part('pagination'); ?> < ?php } else { ?>

Also schlage ich vor, die vorgestellte Postleitzahl in eine featured.php zu verschieben und index.php wie folgt anzupassen:

 
< ?php get_template_part('breadcrumbs'); ?> < ?php get_template_part('featured'); ?> < ?php if ( have_posts() ) { ?> < ?php while ( have_posts() ) { ?> < ?php the_post(); ?> < ?php get_template_part( 'loop', get_post_format() ); ?> < ?php } // end while ?> < ?php get_template_part('pagination'); ?> < ?php } else { ?>

Und dann die loop.php entsprechend anpassen

Fehler 1

Verwenden Sie query_posts() zum Erstellen von sekundären Schleifen. Es ist nur zum Ändern der Primärschleife vorgesehen . Verwenden Sie WP_Query() oder get_posts() um eine sekundäre Schleife zu erstellen:

Es ist immer empfehlenswert, die sekundären / benutzerdefinierten Schleifen von der Hauptabfrage getrennt zu lassen, es sei denn, Sie möchten die Primärschleife ändern .

(Wenn Sie eine weitere Anleitung benötigen, lassen Sie es mich wissen und ich werde Codebeispiele hinzufügen. Ich kann Ihren Pastebin-Inhalt im Moment nicht sehen.)

Bearbeiten

Ich sehe mehrere Probleme:

  1. Sie haben Ihre Hauptschleife in Ihrer Sekundärschleife :

      < ?php while ($featured_query->have_posts()) : $featured_query->the_post(); ?> < ?php while (have_posts()) : the_post(); ?> 

    Sie müssen Ihre vorgestellte Posts-Schleife schließen, bevor Sie Ihre Hauptschleife öffnen :

      < ?php // Open featured posts loop while ($featured_query->have_posts()) : $featured_query->the_post(); // Close featured posts loop endwhile; // Open main loop while (have_posts()) : the_post(); ?> 
  2. Du hast ein extra endif; nach deiner (n) Schleife (n):

     < ?php endwhile;?> < ?php endif; ?> 

    Sie rufen niemals if ( have_posts() ) oder if ( $featured_query->have_posts() ) . Ich würde Ihre while Schleifen innerhalb von Bedingungen, aber es liegt an Ihnen. Aber wenn du es nicht tust, dann werde das endif; los endif;

Korrigierter Code

Ich werde dir die Knochen geben und dir das Fleisch hinzufügen lassen. Ihr Code sollte folgendermaßen aussehen:

 < ?php // Define featured posts query $featured_query = new WP_Query( array( 'posts_per_page' => 3, 'category_name' => 'featured' ) ); // Open featured posts loop if ( $featured_query->have_posts() ) : while ( $featured_query->have_posts() ) : $featured_query->the_post(); // Featured posts loop markup goes here ?> 
< ?php etc... ?>
< ?php // Close featured posts loop endwhile; endif; // Reset post() data wp_reset_postdata(); // Clear/spacer DIV ?>
< ?php // Open the main loop if ( have_posts() ) : while ( have_posts() ) : the_post(); // Main loop markup goes here ?>
> < ?php etc... ?>
< ?php // Close main loop endwhile; endif; ?>

Beachten Sie, dass Sie wp_reset_query() nicht aufrufen wp_reset_query() , da wir die Hauptabfrage nicht berühren.

Hier gehts: http://pastebin.com/dsZEbC6a

Für # 1 habe ich das < ?php /* Main Loop */ ?> < ?php global $framework; ?> verschoben < ?php /* Main Loop */ ?> < ?php global $framework; ?> < ?php /* Main Loop */ ?> < ?php global $framework; ?> unter dem “Featured Posts” -Bit – ich denke, das wird verhindern, dass die vorgestellten Posts vor jedem regulären Post in der Schleife laufen.

Anscheinend war # 2 ein nicht geschlossenes -Tag aus Zeile 8 des ursprünglichen Codes.

Hoffe, das hilft, Prost!