Echo einen Shortcode div nach jeweils 3 Posts

In meiner WordPress home.php Datei habe ich eine Inkrementschleife mit Hilfe einiger Stackexchange-Threads platziert:

             

Wo in der Datei content.php habe ich folgendes:

 

<a href="https://wordpress.stackexchange.com/questions/193798/echo-a-shortcode-div-after-every-3-posts/">

Wie Sie oben sehen können, habe ich versucht, dies zu platzieren: nach jeweils drei Posts, die scheinbar nicht funktionieren, egal welchen Wert ich der Zählung hinzufüge. Es echo die PHP-function an zufälligen Positionen und es scheint auch nicht auf der nächsten Seite meiner unendlichen Scroll-Homepage zu arbeiten.

Kann ich bitte ein paar Hinweise darauf bekommen, was ich hier falsch mache?

Die Seite, an der ich arbeite, ist http://goo.gl/jerhhL

NB PHP noob hier versuchen, herauszufinden, wie Schleifen und Inkrementen funktionieren, also bitte gehen Sie einfach auf mich.

Solutions Collecting From Web of "Echo einen Shortcode div nach jeweils 3 Posts"

Lasst uns zuerst diesen SPAM-Albtraum aufräumen, damit wir ihn lesen und dann den Code vereinfachen können:

 function adinserter() { return 'abcdefg'; } if (have_posts()) { $count = 0; while (have_posts()) { the_post(); $count++; get_template_part( 'content', get_post_format() ); if ($count == 3) { if (function_exists ('adinserter')) { echo adinserter (1); } $count = 0; } } } 

Du hast Code dupliziert, indem get_template_part() innerhalb und else konditional und auch innerhalb des if selbst get_template_part() . Dieser Code läuft die ganze Zeit. Es muss überhaupt nicht konditional sein.

Als nächstes funktioniert Ihr Code mit Ausnahme der Platzierung der Echofunktion. Wenn Sie das vor get_template_part() , wird das erste Add zwischen den Posts # 2 und # 3 herauskommen – was ich unter “zufälligen Positionen” vermute. Der Rest ist korrekt eingegangen. Die Art und Weise, wie Sie das if / else geschrieben haben, mag schwer zu erkennen gewesen sein, aber sobald ich das gereinigt habe, war die Antwort ziemlich offensichtlich.

Bis jetzt, nicht viel WordPress dazu. Das WordPress ist das: Sie brauchen den Counter nicht. Es ist eine in den Loop eingebaut. Es ist für Sie vorgesehen.

 if (have_posts()) { while (have_posts()) { the_post(); get_template_part( 'content', get_post_format() ); if ($wp_query->current_post !== 0 && ($wp_query->current_post+1)%3 == 0) { if (function_exists ('adinserter')) { echo adinserter (1); } } } } 

Soweit es mit deiner unendlichen Schriftrolle nicht funktioniert, kann ich nicht sagen, da ich nicht weiß, wie deine unendliche Schriftrolle funktioniert.