Möchten Sie Sticky Posts zu benutzerdefinierten Posttyp-Archivseiten hinzufügen?
Wenn Sie Ihre wichtigsten benutzerdefinierten Beiträge oben auf der Seite platzieren, können Ihre Besucher sie leichter finden. Aber standardmäßig stellt WordPress die Sticky-Funktionalität für Beiträge zur Verfügung, jedoch nicht für andere Beitragstypen.
In diesem Artikel sehen wir uns an, wie Sie Sticky-Posts in benutzerdefinierten WordPress-Post-Typ-Archiven hinzufügen.
Warum benutzerdefinierte WordPress-Posts klebrig machen?
Wenn Sie Inhalte für Ihre WordPress-Website mit einem anderen Format als einem Standardbeitrag oder einer Standardseite erstellen, verwenden Sie wahrscheinlich bereits einen benutzerdefinierten Beitragstyp. Wenn Sie beispielsweise eine Website für Buchrezensionen betreiben, haben Sie möglicherweise einen Beitragstyp für Buchrezensionen erstellt.
Vielleicht möchten Sie Ihre wichtigsten Inhalte oben im benutzerdefinierten Archiv des Posttyps platzieren. Dies ist eine der besten Möglichkeiten, um detaillierte und zeitkritische Inhalte sowie Ihre beliebtesten benutzerdefinierten Beiträge zu präsentieren.
WordPress bietet zwar eine Funktion für klebende Beiträge, diese ist jedoch für benutzerdefinierte Beitragstypen nicht verfügbar.
Sehen wir uns an, wie Sie Ihren benutzerdefinierten Archivseiten des Posttyps eine Sticky-Funktion hinzufügen.
Hinzufügen von Sticky Posts zu benutzerdefinierten Post-Typen
Zuerst müssen Sie das installieren und aktivieren Sticky Posts – Schalter Plugin. Weitere Informationen finden Sie in unserer Schritt-für-Schritt-Anleitung zur Installation eines WordPress-Plugins.
Nach der Aktivierung müssen Sie die Einstellungen » Sticky Posts – Switch Seite, um das Plugin zu konfigurieren. Aktivieren Sie einfach das Kontrollkästchen neben den benutzerdefinierten Beitragstypen, die Sie festkleben möchten. In diesem Tutorial überprüfen wir den Beitragstyp „Buchbesprechungen“.
Danach müssen Sie unten auf dem Bildschirm auf die Schaltfläche „Änderungen speichern“ klicken.
Wenn Sie nun die Admin-Seite für diesen benutzerdefinierten Beitragstyp besuchen, werden Sie eine neue Spalte bemerken, in der Sie Beiträge kleben können. Alles, was Sie tun müssen, ist auf den Stern neben den Beiträgen zu klicken, die Sie veröffentlichen möchten.
Sie haben den Beitrag jetzt klebrig gemacht. Das Problem ist, dass WordPress nur Sticky Posts auf der Startseite anzeigt. Als Nächstes sehen wir uns an, wie Sticky Posts auf Archivseiten angezeigt werden.
Sticky Posts in benutzerdefinierten Posttyparchiven anzeigen
Um Ihre Sticky Posts oben auf Ihrer benutzerdefinierten Post-Archivseite anzuzeigen, müssen Sie eine neue Vorlage erstellen.
Dazu müssen Sie einen FTP-Client oder die Dateimanageroption in Ihrem WordPress-Hosting-Kontrollfeld verwenden. Wenn Sie FTP noch nie verwendet haben, sollten Sie unsere Anleitung zum Hochladen von Dateien auf WordPress mit FTP lesen.
Sie müssen mit Ihrem FTP-Client oder Dateimanager auf Ihre Site zugreifen und dann zum /wp-content/themes/YOURTHEME/
Mappe. Wenn Sie beispielsweise das Thema Twenty Twenty-One verwenden, müssen Sie zu . navigieren /wp-content/themes/twentytwentyone/
.
Als nächstes müssen Sie in diesem Ordner eine neue Datei mit einem Namen wie . erstellen archive-POSTTYPE.php
. Wenn Ihr benutzerdefinierter Post-Typ-Slug beispielsweise ‚bookreviews‘ ist, sollten Sie eine neue Datei namens . erstellen archive-bookreviews.php
.
Danach müssen Sie die Datei archive.php im selben Ordner finden. Kopieren Sie einfach den Inhalt von archive.php und fügen Sie ihn in die neu erstellte Datei ein.
Im nächsten Schritt müssen Sie Ihren Designdateien Code hinzufügen. Wenn Sie Hilfe beim Hinzufügen von Code zu Ihrer Website benötigen, lesen Sie unsere Anleitung zum Hinzufügen von benutzerdefiniertem Code in WordPress.
Wenn Sie fertig sind, müssen Sie den folgenden Code in die Datei functions.php Ihres Themes oder ein Site-spezifisches Plugin einfügen.
function wpb_cpt_sticky_at_top( $posts ) {
// apply it on the archives only
if ( is_main_query() && is_post_type_archive() ) {
global $wp_query;
$sticky_posts = get_option( 'sticky_posts' );
$num_posts = count( $posts );
$sticky_offset = 0;
// Find the sticky posts
for ($i = 0; $i < $num_posts; $i++) {
// Put sticky posts at the top of the posts array
if ( in_array( $posts[$i]->ID, $sticky_posts ) ) {
$sticky_post = $posts[$i];
// Remove sticky from current position
array_splice( $posts, $i, 1 );
// Move to front, after other stickies
array_splice( $posts, $sticky_offset, 0, array($sticky_post) );
$sticky_offset++;
// Remove post from sticky posts array
$offset = array_search($sticky_post->ID, $sticky_posts);
unset( $sticky_posts[$offset] );
}
}
// Look for more sticky posts if needed
if ( !empty( $sticky_posts) ) {
$stickies = get_posts( array(
'post__in' => $sticky_posts,
'post_type' => $wp_query->query_vars['post_type'],
'post_status' => 'publish',
'nopaging' => true
) );
foreach ( $stickies as $sticky_post ) {
array_splice( $posts, $sticky_offset, 0, array( $sticky_post ) );
$sticky_offset++;
}
}
}
return $posts;
}
add_filter( 'the_posts', 'wpb_cpt_sticky_at_top' );
// Add sticky class in article title to style sticky posts differently
function cpt_sticky_class($classes) {
if ( is_sticky() ) :
$classes[] = 'sticky';
return $classes;
endif;
return $classes;
}
add_filter('post_class', 'cpt_sticky_class');
Dieser Code verschiebt Ihre Sticky Posts nach oben. Wenn dein Theme die verwendet post_class()
Funktion, dann fügt es auch eine ’sticky‘-Klasse hinzu, damit Sie Ihre Sticky-Posts mit CSS gestalten können.
So sieht das Archiv des benutzerdefinierten Beitragstyps Buchrezensionen auf unserer Demo-Site aus. Vor dem Hinzufügen des Codes stand der Sticky Post an zweiter Stelle auf der Liste.
Sie können Ihre Sticky Posts jetzt mit gestalten .sticky
Klasse in deinem Thema style.css
Stylesheet. Hier ist ein Beispiel.
.sticky {
background-color:#ededed;
background-image:url('http://example.com/wp-content/uploads/featured.png');
background-repeat:no-repeat;
background-position:right top;
}
Hier ist ein aktualisierter Screenshot von unserer Demo-Website.
Wir hoffen, dass dieses Tutorial Ihnen geholfen hat, zu lernen, wie Sie Sticky-Posts in benutzerdefinierten WordPress-Post-Typ-Archiven hinzufügen. Vielleicht möchten Sie auch lernen, wie Sie Ihre WordPress-Website beschleunigen oder eine Liste mit 27 Tipps zur Steigerung Ihres Blog-Traffics lesen.