Inject (aus bestimmter Kategorie) zwischen Posts in Loop eincasting

Ich möchte einen Beitrag (aus einer bestimmten Kategorie) zwischen den Beiträgen in der WordPress-Schleife hinzufügen (z. B. “Sponsoren”). Beispiel:

PPPS
PPSP
PSPP

Wie kann ich das erreichen? Ich bin ein Anfänger mit Codierung, also weiß ich nicht genug, um einen Loop alleine zu modifizieren. Irgendwelche Loop Coding Ninjas da draußen, die eine Lösung bieten können?

Beachten Sie, dass unten meine aktuelle Loop ist. Es wird verwendet, um Beiträge nach Preis oder nach zufälliger Reihenfolge zu sortieren:

index.php

 

<a href="https://wordpress.stackexchange.com/questions/158133/inject-post-from-specific-category-between-posts-in-loop/">

functionen.php

 function my_custom_query($query){ if ( $query->is_home() && $query->is_main_query() ) { $sort= $_GET['sort']; if($sort == "A"){ $query->set( 'orderby', 'rand' ); $query->set( 'posts_per_page', '2' ); } if($sort == "B"){ $query->set( 'meta_key', 'price' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'DESC' ); $query->set( 'posts_per_page', '2' ); } } } add_action( 'pre_get_posts', 'my_custom_query' ); 

Bearbeiten: Aktualisieren

Birgires Plugin funktioniert! Anfangs hatte ich Probleme, das Plugin für mein Thema zu verwenden. Das Problem war dieses Stück Code, den ich innerhalb der Schleife in index.php verwende (ich verwende es, um das benutzerdefinierte Feld aufzurufen).

 post->ID; echo get_post_meta($postid, 'price', true); wp_reset_query(); ?> 

Solutions Collecting From Web of "Inject (aus bestimmter Kategorie) zwischen Posts in Loop eincasting"

Der Automatische Sponsor Post Injector:

Hier ist eine Idee basierend auf meiner Antwort auf die Frage: Wie zeige ich die Anzahl der benutzerdefinierten Posts nach jedem X normalen Posts?

Ich habe es hoffentlich ein bisschen nützlicher hier auf Github gemacht , aber es kann viel mehr verfeinert werden (zukünftige Arbeit).

Die SponsorPostsInjector class hilft Ihnen dabei, die Sponsor- Posts mit den Filtern the_post , loop_start und loop_end automatisch in das Theme zu loop_end .

Aktivieren Sie das Plugin und fügen Sie Ihrer Datei functions.php das folgende Beispiel hinzu, um die Injektionen zu starten:

 /** * Inject a sponsor post after the first post on the home page, * and then again for every third post within the main query. */ add_action( 'wp', 'my_sponsor_injections' ); function my_sponsor_injections() { if( ! class_exists( 'SponsorPostsInjector' ) ) return; // We want the sponsor posts injections only on the home page: if( ! is_home() ) return; // Setup the injection: $injector = new SponsorPostsInjector( array( 'items_before_each_inject' => 3, 'items_per_inject' => 1, 'template_part' => 'content-sponsor', ) ); // Setup the injection query: $injector->query( array( 'post_type' => 'sponsor', 'tax_query' => array( array( 'taxonomy' => 'country', 'terms' => 'sweden', 'field' => 'slug', ) ) ) ); // Inject: $injector->inject(); } 

wo wir die content-sponsor.php Vorlagendatei in unserem aktuellen Themenverzeichnis erstellt haben, um das Layout der injizierten Sponsor-Posts zu kontrollieren.

Die Idee ist, dass dies auch für die Paginierung sorgen soll.

Sie können dies hoffentlich an Ihre Bedürfnisse anpassen.