Hinzufügen von Sticky Posts in benutzerdefinierten WordPress-Archivtypen
Kürzlich hat uns einer unserer Benutzer gefragt, ob es möglich wäre, den benutzerdefinierten Beitragstyparchiven klebrige Beiträge hinzuzufügen. WordPress verfügt standardmäßig über die Sticky-Funktion für Beiträge, nicht jedoch für andere Beitragstypen. In diesem Artikel zeigen wir Ihnen, wie Sie in WordPress-benutzerdefinierten Beitragstyparchiven klebrige Beiträge hinzufügen können. Bevor wir fortfahren, möchten Sie wahrscheinlich lernen, wie Sie benutzerdefinierte Post-Typen in WordPress erstellen.
Hinzufügen von Kurznachrichten in benutzerdefinierten Beitragstypen
Als Erstes müssen Sie das Plugy Sticky Custom Post Types installieren und aktivieren. Gehen Sie nach dem Aktivieren des Plugins zu Einstellungen »Lesen und scrollen Sie nach unten zum Abschnitt Sticky Custom Post Types. Als Nächstes müssen Sie die benutzerdefinierten Beitragstypen auswählen, für die Sie die Option "Stick This" aktivieren möchten.
Was wir hier getan haben, ist, dass wir unseren benutzerdefinierten Beitragstypen die Funktion für klebrige Beiträge hinzugefügt haben. Haftnotizen in benutzerdefinierten Beitragstypen werden auf der Startseite wie normale Haftnotizen angezeigt.
Das Problem ist, dass WordPress standardmäßig nur klebrige Beiträge auf der Startseite anzeigt. Es zeigt keine klebrigen Beiträge auf Archivseiten.
Anzeigen von klebrigen Beiträgen in benutzerdefinierten Beitragstyparchiven
Nehmen wir an, Sie haben einen benutzerdefinierten Beitragstyp für Movie Reviews, bei dem mit dem oben genannten Plugin aktive Beiträge aktiviert sind. Jetzt möchten Sie, dass Ihre klebrigen Beiträge in den Beitragstypen von Filmmaterialien anders angezeigt werden und zusätzlich zu den nicht-klebrigen normalen Filmbewertungen. So was:
Um dieses Ziel zu erreichen, benötigen Sie als erstes eine Archivvorlage für Ihren benutzerdefinierten Beitragstyp: Archiv-Post-Typ.php
. Erfahren Sie, wie Sie eine benutzerdefinierte Beitragstyp-Archivseite erstellen. Zum Beispiel, wenn Sie einen benutzerdefinierten Beitragstyp haben Filmkritiken
dann sollte Ihre Archivseitenvorlage sein archive-movie-reviews.php
. Wenn Sie keine Vorlage haben, erstellen Sie eine. Kopieren Sie einfach den Inhalt von archive.php in das Verzeichnis Ihres Themes und fügen Sie ihn in eine neue Datei ein Archiv-Ihr-Post-Typ.php
.
Als nächsten Schritt fügen Sie diesen Code in Ihr Theme ein Functions.php
Datei:
Funktion wpb_cpt_sticky_at_top ($ posts) // Wende sie nur in den Archiven an, wenn (is_main_query () && is_post_type_archive ()) global $ wp_query; $ sticky_posts = get_option ('sticky_posts'); $ num_posts = count ($ posts); $ sticky_offset = 0; // Finde die klebrigen Beiträge für ($ i = 0; $ i ID, $ sticky_posts)) $ sticky_post = $ posts [$ i]; // Entferne sticky von der aktuellen Position array_splice ($ posts, $ i, 1); // Nach vorne springen, nach anderen Stickies array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post)); $ sticky_offset ++; // Post aus haftenden Beiträgen entfernen Array $ offset = array_search ($ sticky_post-> ID, $ sticky_posts); unset ($ sticky_posts [$ offset]); // Suchen Sie ggf. nach weiteren klebrigen Beiträgen, wenn (! Empty ($ sticky_posts)) stickies = get_posts (array ('post__in' => $ sticky_posts, 'post_type' => $ wp_query-> query_vars [ ], 'post_status' => 'publish', 'nopaging' => true))); foreach ($ stickies als $ sticky_post) array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post)); $ sticky_offset ++; $ Beiträge zurückgeben; add_filter ('the_posts', 'wpb_cpt_sticky_at_top'); // Sticky-Klasse im Artikeltitel hinzufügen, um Sticky-Posts unterschiedlich zu gestalten. Funktion cpt_sticky_class ($ classes) if (is_sticky ()): $ classes [] = 'sticky'; $ Klassen zurückgeben; endif; $ Klassen zurückgeben; add_filter ('post_class', 'cpt_sticky_class');
Der obige Code würde Ihre klebrigen Beiträge nach oben verschieben, wenn Ihr Thema verwendet wird post_class ()
Funktion, dann würde es klebrig in der Post-Klasse hinzufügen.
Sie können Ihre klebrigen Beiträge mit formatieren .klebrig
Klasse in Ihrem Stylesheet. Beispiel:
.klebrig Hintergrundfarbe: #ededed; Hintergrundbild: URL ('http://example.com/wp-content/uploads/featured.png'); Hintergrundwiederholung: keine Wiederholung; Hintergrundposition: rechts oben;
Wir hoffen, dieser Artikel hat Ihnen dabei geholfen, klebrige Beiträge in benutzerdefinierten Beitragstyparchiven hinzuzufügen. Für Fragen und Feedback hinterlassen Sie bitte einen Kommentar.
Quelle: Tareq Hasan