Hinzufügen einer bestimmten Postkategorie zwischen Posts in einer Schleife

Ich baue eine Site, die auf einem gemauerten Thema basiert, und möchte nach jedem dritten Post eine bestimmte Kategorie von Post hinzufügen (“Sponsoren” in diesem Fall). Ein Beispiel würde gehen:

Beitrag Beitrag Beitrag
Sponsor Post Post
Beitragspost Post
Post Post Sponsor

Ich habe ziemlich nach einem ähnlichen Problem gesucht, aber das nächste, was ich finden kann, ist für die Platzierung einer Anzeige wie unten. Allerdings möchte ich die Anzeige durch einen Kategoriepost ersetzen.

 

Ich bin immer noch ein absoluter Anfänger in der Programmierung (vor allem PHP und WP), aber ich habe ein paar Ideen, wie es erreicht werden könnte. Ich habe viele verschiedene Möglichkeiten ausprobiert, aber ich schieße grundsätzlich im Dunkeln. Dies ist die Grundidee von dem, was ich versucht habe (“Sponsors” ist cat = 22).

 <?php $count=0; while ( have_posts() ) : the_post(); count++; if ($count%3==0) {  get_template_part( 'content', get_post_format() ); else  get_template_part( 'content', get_post_format() ); ?> 

Dies funktioniert natürlich nicht (query_posts sollte nicht in einer Schleife verwendet werden?), Aber ich hoffe, es zeigt etwas von meinem Denkprozess. Ich habe keine Möglichkeit gefunden, eine Kategorie von einer bereits laufenden Schleife auszuschließen.

Eine andere Idee, die ich hatte, wäre 2 Loops, wobei die erste Schleife die “Sponsor” -Kategorie ausschließt und 3 mal postet und dann eine zweite Schleife, die nur 1 Beitrag von “Sponsor” veröffentlicht. Aber wenn ich das tue, weiß ich nicht, wie man diesen Zyklus wiederholt (dh nur 4 Beiträge erscheinen).

Wie würde ich das machen? Ich schätze die Hilfe!

Solutions Collecting From Web of "Hinzufügen einer bestimmten Postkategorie zwischen Posts in einer Schleife"

Sie können dies als Anfang verwenden. Dies muss in die functionen.php gehen. Sie können Ihre normale Schleife in Ihren Vorlagendateien verwenden und müssen dort nichts ändern. Dies wird einen Beitrag aus einer Kategorie nach den Post 3 und 6 hinzufügen. Denken Sie daran, den Kategorienamen mit dem Slug Ihrer Kategorie zu ändern.

 function category_after_third_post( $post ) { global $wp_query; if ( $wp_query->post != $post ) return; if ( 3 != $wp_query->current_post || 6 != $wp_query->current_post ) return; $args = array( 'category_name' => 'uit-die-koskas', 'posts_per_page' => 1 ); $catquery = new WP_Query($args); if ( $catquery->have_posts() ) : while ( $catquery->have_posts() ) : $catquery->the_post(); get_template_part( 'content', get_post_format() ); endwhile; endif; } add_action( 'the_post', 'category_after_third_post' ); 

Alternativ können Sie ein Widget erstellen und nach jedem dritten Post hinzufügen.

 function cat_posts_sidebar() { register_sidebar( array( 'name' => __( 'Sidebar for ads', 'my-theme' ), 'id' => 'sidebar-10', 'description' => __( 'Sidebar to display cat post', 'my-theme' ), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); } add_action( 'widgets_init', 'cat_posts_sidebar' );

Dann modifiziere die erste function dazu.

 function category_after_third_post( $post ) { global $wp_query; if ( $wp_query->post != $post ) return; if ( 3 != $wp_query->current_post || 6 != $wp_query->current_post ) return; echo '
'; dynamic_sidebar( 'sidebar-10' ); echo '
'; } add_action( 'the_post', 'category_after_third_post' );