Wenn Sie eine Website haben, gibt es wahrscheinlich einige Beiträge, die wichtiger sind als andere. Eine Möglichkeit, sicherzustellen, dass Ihre Besucher diese Beiträge zuerst sehen, ist, sie ganz oben auf einer Seite zu platzieren.
Mit der WordPress-Funktion für Sticky-Beiträge können Sie dies mit Standardbeiträgen tun. Wenn Sie jedoch benutzerdefinierte Beitragstypen auf Ihrer Website verwenden, werden diese Sticky-Beiträge nicht wie erwartet am Anfang der Seite angezeigt.
In diesem Artikel zeigen wir Ihnen, wie Sie die Funktion für „sticky“ Beiträge zu Ihren benutzerdefinierten Beitragstypen hinzufügen und diese auf Archivseiten für benutzerdefinierte Beitragstypen anzeigen.

Warum WordPress Custom Posts „Sticky“ machen?
Wenn Sie Inhalte für Ihre WordPress-Website in einem anderen Format als einem Standardbeitrag oder einer Standardseite erstellen, verwenden Sie wahrscheinlich bereits einen benutzerdefinierten Beitragstyp. Wenn Sie beispielsweise eine Buchrezensions-Website betreiben, haben Sie möglicherweise einen Beitragstyp für Buchrezensionen erstellt.
Sie möchten Ihre wichtigsten Inhalte möglicherweise am Anfang des Archivs für benutzerdefinierte Beitragstypen platzieren. Dies ist eine der besten Möglichkeiten, um ausführliche und zeitkritische Inhalte sowie Ihre beliebtesten benutzerdefinierten Beiträge hervorzuheben.
Aber obwohl WordPress eine Funktion für „sticky“ Beiträge bietet, ist diese für benutzerdefinierte Beitragstypen nicht verfügbar.
Sehen wir uns an, wie Sie Ihren benutzerdefinierten Beitragstyp-Archivseiten eine Sticky-Funktion hinzufügen.
Sticky Posts in benutzerdefinierten Beitragstypen hinzufügen
Zuerst müssen Sie das Sticky Posts – Switch Plugin installieren und aktivieren. Weitere Details finden Sie in unserer Schritt-für-Schritt-Anleitung zur Installation eines WordPress-Plugins.
Hinweis: Obwohl dieses Plugin seit einiger Zeit nicht mehr aktualisiert wurde, funktioniert es in unseren Tests immer noch einwandfrei. Möglicherweise möchten Sie unseren Artikel lesen, ob Sie Plugins installieren sollten, die nicht mit Ihrer WordPress-Version getestet wurden.
Nach der Aktivierung müssen Sie die Seite Einstellungen » Sticky Posts – Umschalten besuchen, um das Plugin zu konfigurieren. Aktivieren Sie einfach das Kontrollkästchen neben den benutzerdefinierten Beitragstypen, die Sie als „sticky“ markieren möchten.
Für dieses Tutorial werden wir den Beitragstyp 'Buchrezensionen' überprüfen.

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 als „sticky“ (hervorgehoben) markieren können. Klicken Sie einfach auf den Stern neben den Beiträgen, die Sie hervorheben möchten.

Sie haben den Beitrag jetzt als „Sticky“ markiert. Das Problem ist, dass WordPress „Sticky Posts“ nur auf der Startseite anzeigt. Als Nächstes sehen wir uns an, wie „Sticky Posts“ auf Archivseiten angezeigt werden.
Sticky Posts in benutzerdefinierten Beitragstyp-Archiven anzeigen
Um Ihre „Sticky Posts“ am Anfang Ihrer Custom Post-Archivseite anzuzeigen, müssen Sie eine neue Vorlage erstellen.
Um dies zu tun, müssen Sie einen FTP-Client oder die Dateimanager-Option in Ihrem WordPress-Hosting-Kontrollpanel verwenden. Wenn Sie FTP noch nie verwendet haben, sollten Sie sich unseren Leitfaden ansehen, wie Sie FTP verwenden, um Dateien auf WordPress hochzuladen.
Sie müssen über Ihren FTP-Client oder Dateimanager auf Ihre Website zugreifen und dann zum Ordner /wp-content/themes/IHRTHEME/ navigieren.
Wenn Sie beispielsweise das Twenty Twenty-One-Theme verwenden, müssen Sie zu /wp-content/themes/twentytwentyone/ navigieren.
Als Nächstes müssen Sie in diesem Ordner eine neue Datei mit dem Namen archive-POSTTYPE.php erstellen.
Wenn Ihr Custom Post Type-Slug beispielsweise „bookreviews“ lautet, sollten Sie eine neue Datei namens archive-bookreviews.php erstellen.

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.
Der nächste Schritt erfordert, dass Sie Code zu Ihren Theme-Dateien hinzufügen. Wenn Sie Hilfe beim Hinzufügen von Code zu Ihrer Website benötigen, lesen Sie unsere Anleitung zum einfachen Hinzufügen von benutzerdefiniertem Code in WordPress.
Wenn Sie bereit sind, müssen Sie den folgenden Code zur `functions.php`-Datei Ihres Themes oder einem Code-Snippet-Plugin wie WPCode (empfohlen) hinzufügen: functions.php
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-Beiträge an den Anfang. Wenn Ihr Theme die Funktion post_class() verwendet, fügt es auch eine Klasse 'sticky' hinzu, damit Sie Ihre Sticky-Beiträge mit CSS gestalten können.
So sieht das Archiv des benutzerdefinierten Post-Typs Buchrezensionen auf unserer Demoseite aus. Vor dem Hinzufügen des Codes war der Sticky-Post an zweiter Stelle in der Liste.

Sie können Ihre Sticky-Posts jetzt mit der Klasse .sticky in der style.css-Stylesheet-Datei Ihres Themes gestalten. 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.

Experten-Anleitungen zu „Sticky Posts“
Wir hoffen, dieses Tutorial hat Ihnen geholfen zu lernen, wie Sie „Sticky Posts“ in WordPress Custom Post Type-Archiven hinzufügen. Möglicherweise möchten Sie auch einige andere Anleitungen zu „Sticky Posts“ in WordPress sehen:
- So erstellen Sie Sticky Posts in WordPress (schnell und einfach)
- Wie man Sticky Posts für Kategorien in WordPress hinzufügt
- Coole Dinge, die Sie mit Sticky Posts in WordPress machen können
- Wie man „Sticky Posts“ aus der Schleife in WordPress ausschließt
- Wie man Beiträge in WordPress einfach neu ordnet (Schritt für Schritt)
- So erstellen Sie ein Sticky Floating Navigation Menü in WordPress
- So erstellen Sie ein Sticky Floating Sidebar Widget in WordPress
- So erstellen Sie eine „Sticky“ schwebende Fußzeilenleiste in WordPress
Wenn Ihnen dieser Artikel gefallen hat, abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Video-Tutorials. Sie finden uns auch auf Twitter und Facebook.

Clare
Ich habe es geschafft, einen benutzerdefinierten Beitragstyp in einem Archiv „sticky“ zu machen, indem ich Ihrem Beispiel gefolgt bin. Super hilfreich, danke!
WPBeginner Support
Glad to hear our guide was helpful!
Admin
rom
Hallo,
Ich schlage mir gerade den Kopf ein....
Ich benutze dieses Plugin, es funktioniert gut, ich sehe es im Adminbereich und in der Datenbank sehe ich, dass es sticky_posts in wp_options aktualisiert. Aber wenn ich versuche, 'post__not_in' => get_option('sticky_posts') zu verwenden, filtert es nichts.
Also versuche ich, var_dump(get_option('sticky_posts')) auszugeben, und alles, was ich bekomme, ist die ID des 'normalen Posts', nicht die vollständige Liste der IDs, die ich in wp_options/sticky_posts sehen kann.
Which mean if I try to use is_stiky in my loop, it only work in ‘normal’ post, not in CPT, which is logic, since get_option(‘sticky_posts’) is not working properly…. Any idea how I can fix that ? it’s driving me crazy
Markus Froehlich
Sie können dieses Sticky Post Switch Plugin verwenden
Es ermöglicht auch die Funktion für benutzerdefinierte Beitragstypen
Pat Ducat
Das funktioniert gut, macht es aber auf jeder Seite eines paginierten Archivs sticky. Funktioniert die eingebaute Sticky-Funktion für Standardbeiträge auch so?
Aaron
Wie könnte ich das so einrichten, dass es mit einer benutzerdefinierten Taxonomie-Archivseite funktioniert?
Ich habe versucht, 'is_tax' und 'is_category' anstelle von is_post_type_archive() in Zeile 4 Ihrer Funktion hinzuzufügen, aber die Seite funktioniert dann nicht mehr.
Mir fehlt offensichtlich etwas, aber ich kann es nicht finden.
Irgendwelche Ideen?
Daniel Dropik
Danke. Ist es möglich, dieses Tutorial anzupassen, um Sticky Posts auf einer spezialisierten Seiten-Vorlage anzuzeigen, anstatt auf der Archivseite? Wenn ja, wie kann ich das erreichen?
WPBeginner Support
Daniel, ja klar, das kann auf einer separaten Seiten-Vorlage gemacht werden. Erstellen Sie einfach eine benutzerdefinierte Vorlage und befolgen Sie die oben genannten Anweisungen.
Admin
Shawn
Wie machen Sie das für Custom Taxonomy.php anstelle von Archives.
WPBeginner Support
Wenn die benutzerdefinierte Taxonomie Beitragstypen mit Unterstützung für Sticky-Beiträge anzeigt, können Sie diese auf die gleiche Weise anzeigen. Anstatt der Vorlage archive-post-type.php, nehmen Sie Änderungen in der Vorlage taxonomy-custom-taxonomy.php vor.
Admin
Mr.Ultra
Danke. Das ist nützlich.
Aber wenn es möglich ist, ohne ein Plugin die Sticky-Funktionalität zu benutzerdefinierten Post-Typen hinzuzufügen?
Können Sie den Snippet teilen?
Anir
Sehr informativ, danke fürs Teilen. Es hilft sehr.
Daniel
Wirklich schönes Tutorial.