Ich habe eine WordPress-Installation in meinem Magento-Shop unter Verwendung des 3rd-Party-Moduls fishpig.
Ich habe eine Seite mit dem Namen list.phtml, die den gesamten Inhalt einer Kategorie mit $this->getPostListHtml()
veröffentlicht. Ich habe ein weiteres div hinzugefügt und repliziert, aber jetzt werden nur die Beiträge vom ersten div in das zweite dop- pelt. Wie mache ich ein einzigartiges zweites div so wenn Beiträge auf dem Backend gemacht werden es nur auf das zweite div auf der gleichen Seite posten. Momentan bekomme ich die Kategorie per Slug und Post Sammlung und dann die Reihenfolge (Asc) und dann bin ich durch die Kategorie und Reiter für jede Seite, die ähnliche Inhalte zieht. Ich habe mehrere Seiten, aber auf jeder Fahrerseite muss es immer noch Team 2 Beiträge unter dem Team geben. Ich hoffe das ergibt Sinn.
cpt / team / list.phtml
%Vor% %Vor%cpt / team / renderer / list.phtml
%Vor%cpt / team / renderer / view.phtml
%Vor%Aufgrund Ihres teilweise veröffentlichten Codes kann ich Ihnen nur eine konzeptionelle Antwort geben.
Aus dem, was Sie bisher gepostet haben, kann Ihr einziger Unterschied zwischen neuen und alten Posts auf zwei Arten synthetisiert werden:
Nach post_date , und Sie können fast die gleiche Funktion aufrufen, aber mit dem post_date des letzten angezeigten Posts als Parameter, so dass Sie die neuen Ergebnisse filtern können, die neueres post_date haben. Hinzufügen eines neuen Abschlusses vor oder nach setOrder(...)
oder durch Ändern der wpQuery;
Oder durch offset . In Anbetracht dessen, dass Sie keine rückdatierten Beiträge haben werden, haben alle neuen Beiträge den gleichen Offset wie die Anzahl der ursprünglichen Beiträge. Sie müssen also setOffset($oldCount);
Auf diese Weise erhalten Sie die neuesten Beiträge ab dem zuletzt angezeigten Post.
Sie müssen nur die wp-Abfrage mit dem gewünschten Parameter aktualisieren oder eine Möglichkeit finden, Ihre Beiträge auf andere Weise zu markieren:
$displayed_post_ids
zu verfolgen und dann mit post__not_in
abzufragen, wie im folgenden Beispiel:
$args = array(
'post_type' => 'post',
//... other args
'post__not_in' => array($displayed_post_ids) // Don't show this posts
);
_wasDisplayed
hinzufügen (mit etwas wie update_post_meta( $post_id, '_wasDisplayed', true);
, wenn Sie den Post im ersten div anzeigen, können Sie das auch tun) Sie können einen Standardwert für false für diesen post_meta-Wert für alle Ihre Posts beim Erstellen festlegen. Dies wird Ihnen bei der Abfrage helfen. Auf der zweiten Div rufen Sie die Generator-Funktion auf und prüfen, ob Ihre Posts das post_meta haben und ob es false ist.
Sie können die post_meta-Werte später auch zurücksetzen, wenn Sie sie benötigen.
Für die Implementierung ist auch erforderlich, um zu wissen, wie viele Beiträge Sie anzeigen möchten, wenn Sie Paginierung und andere kleine Details verwenden, die Ihre Arbeit etwas komplexer machen könnten.
Beachten Sie - diese Falllösung:
5. Da Ihre Geschäftslogik eher mit Kategorien zu tun hat, gibt es eine einfachere Lösung:
Auf dem Backed-Prozess, der neue Posts hinzufügt, die jedem neuen Post eine zusätzliche Kategorie zuweisen (etwas wie "Neue nicht angezeigte Posts"), wird diese Kategorie als Filter-Argument im zweiten div verwendet.
Berücksichtigen Sie, dass Sie diese Kategorie aus allen Posts entfernen müssen, die zum Zeitpunkt des Aufrufs von getPostListHtml()
aus dem ersten div-Post veröffentlicht werden. Andernfalls werden unerwünschte Posts in der zweiten div-Datei angezeigt.
Sie können dies in einer Wrapper-Funktion mithilfe eines der Kategorieargumente für das wp-Abfrageobjekt erreichen:
%Vor%Anzeigen von Posts, die bestimmten Kategorien zugeordnet sind.
%Vor%Hoffe es hilft, Codrut, KMM