So erstellst Du Sticky-Posts für Kategorien in WordPress mit Code Snippets

Artikel vom 2. August 2024, Voraussichtliche Lesezeit 6 min,©Der Webfuchs

Du möchtest wichtige Inhalte in Deinen Kategorien immer im Blick behalten? Ein Sticky-Post kann dabei helfen! In diesem Artikel zeige ich Dir, warum Sticky-Posts für Kategorien so nützlich sind und wie Du sie in Deinem WordPress-Projekt mittels Code-Snippets umsetzen kannst.

Was ist ein Sticky-Post?

In der digitalen Welt, in der Inhalte kontinuierlich aktualisiert und durch neue Beiträge verdrängt werden, ist es oft eine Herausforderung, wichtige Informationen dauerhaft sichtbar zu halten. Hier kommen Sticky-Posts ins Spiel. Ein Sticky-Post ist ein Beitrag, der unabhängig vom Veröffentlichungsdatum immer an oberster Stelle einer Kategorie oder einer Blog-Seite angezeigt wird. Diese Funktion ermöglicht es Dir, bestimmte Inhalte hervorzuheben und sie für Deine Nutzer leicht zugänglich zu machen.

Warum sind Sticky-Posts nützlich, besonders für Kategorien?

Sticky-Posts sind nicht nur für allgemeine Blog-Seiten nützlich, sondern auch für spezifische Kategorien. Kategorien sind oft nach Themen oder spezifischen Interessengebieten strukturiert, und in jeder dieser Kategorien gibt es wahrscheinlich wichtige Informationen, die dauerhaft hervorgehoben werden sollten. Dies könnte eine Einführung in die Kategorie, wichtige Ankündigungen oder beliebte Beiträge sein, die für neue Besucher oder Stammleser gleichermaßen von Interesse sind.

In diesem Artikel werde ich Dir zeigen, warum Sticky-Posts gerade für Kategorien eine wertvolle Ergänzung sein können. Zudem werde ich den technischen Aspekt beleuchten und Dir eine Anleitung geben, wie Du einen Sticky-Post implementieren kannst. Dabei werde ich auch den entwickelten Code vorstellen und zeigen, wie er in Deinem Projekt angewendet werden kann.

Vorteile eines Sticky-Posts für Kategorien

Sticky-Posts ermöglichen Dir, wichtige Inhalte in den Fokus zu rücken, unabhängig davon, wann sie erstellt wurden. Dies kann besonders nützlich sein, wenn Du eine Kategorie hast, die viele Beiträge enthält, aber sicherstellen möchtest, dass bestimmte Informationen immer an erster Stelle stehen. Hier sind einige spezifische Vorteile, die ein Sticky-Post für Kategorien bietet:

  • Erhöhung der Sichtbarkeit wichtiger Inhalte: Sticky-Posts sorgen dafür, dass wichtige Beiträge immer oben in einer Kategorie angezeigt werden. Dies ist besonders nützlich für Ankündigungen, Einführungstexte oder zentrale Themen, die Du Deinen Lesern nicht vorenthalten möchtest.
  • Verbesserung der Benutzerführung und -erfahrung: Indem Du wichtige oder besonders relevante Beiträge an den Anfang einer Kategorie stellst, führst Du Deine Leser gezielt zu den Inhalten, die für sie am nützlichsten sind. Dies verbessert die Benutzererfahrung und hält Deine Besucher länger auf Deiner Seite.
  • Unterstützung bei der SEO-Optimierung: Inhalte, die gut strukturiert und prominent platziert sind, können dazu beitragen, die Verweildauer der Nutzer zu erhöhen und somit positive Signale an Suchmaschinen zu senden. Ein Sticky-Post kann helfen, Deine besten Inhalte hervorzuheben und die SEO-Wirksamkeit Deiner Seite zu steigern.
  • Praxisbeispiele: Ein Reiseblog könnte beispielsweise in jeder Kategorie einen Sticky-Post verwenden, um Reisetipps oder Packlisten hervorzuheben. Ein Online-Shop könnte wichtige Verkaufsaktionen oder Anleitungen zu Produktkategorien als Sticky-Post präsentieren.

Technische Umsetzung: Sticky-Post für Kategorien erstellen

Jetzt, da Du die Vorteile von Sticky-Posts kennst, kommen wir zum praktischen Teil: der Implementierung. Der folgende Code ermöglicht es Dir, spezifische Beiträge innerhalb bestimmter Kategorien immer an oberster Stelle anzuzeigen, unabhängig davon, wann sie veröffentlicht wurden. Dieser Code wird direkt in das Plugin Code Snippets eingefügt, das es Dir ermöglicht, benutzerdefinierte Funktionen in WordPress hinzuzufügen, ohne die functions.php-Datei Deines Themes zu ändern.

if (!function_exists('move_sticky_post_to_top')) {
    function move_sticky_post_to_top($posts, $query) {
        if ($query->is_main_query() && !is_admin() && $query->is_category()) {

            // Array mit Kategorie-IDs und den IDs der Sticky-Beiträge
            $sticky_posts_by_category = array(
                7 => 11723, // Beispiel: Die ID 7 repräsentiert deine Kategorie, und 11723 ist der Sticky-Post
                // Weitere Kategorie-IDs und die zugehörigen Sticky-Beitrags-IDs
            );

            // Prüfen, ob die aktuelle Kategorie im Array existiert
            $category_id = get_queried_object_id();
            if (isset($sticky_posts_by_category[$category_id])) {
                $sticky_post_id = $sticky_posts_by_category[$category_id];

                // Abfrage, um den Sticky-Post explizit zu suchen
                $sticky_query = new WP_Query(array(
                    'p' => $sticky_post_id,
                    'ignore_sticky_posts' => 1,
                    'post_type' => 'any',
                    'posts_per_page' => 1,
                ));

                if ($sticky_query->have_posts()) {
                    // Sticky-Post gefunden
                    $sticky_post = $sticky_query->posts[0];

                    // Entferne den Sticky-Post aus der aktuellen Post-Liste (falls vorhanden)
                    $remaining_posts = array_filter($posts, function($post) use ($sticky_post_id) {
                        return $post->ID !== $sticky_post_id;
                    });

                    // Setze den Sticky-Post an den Anfang der Liste
                    array_unshift($remaining_posts, $sticky_post);

                    // Setze die neue Liste in $posts
                    $posts = $remaining_posts;
                }
            }
        }
        return $posts;
    }
    add_filter('the_posts', 'move_sticky_post_to_top', 10, 2);
}

Erklärung des Codes

Hauptfunktion move_sticky_post_to_top: Diese Funktion überprüft, ob die aktuelle Anfrage (Query) die Hauptabfrage ist, kein Administratorbereich geöffnet ist und ob es sich um eine Kategorie-Seite handelt. Dies stellt sicher, dass der Code nur auf den gewünschten Seiten ausgeführt wird und nicht auf Seiten wie dem Admin-Dashboard.

Array sticky_posts_by_category: In diesem Array definierst Du, welche Beiträge in welchen Kategorien als Sticky-Post fungieren sollen. Die Schlüssel des Arrays sind die Kategorie-IDs, und die Werte sind die IDs der jeweiligen Sticky-Beiträge.

  • Kategorie-ID herausfinden: Um die ID einer Kategorie zu ermitteln, gehst Du in WordPress zu „Beiträge“ > „Kategorien“. Fährst Du mit der Maus über eine Kategorie, wird unten im Browser die URL angezeigt, in der die ID der Kategorie zu sehen ist (z. B. tag_ID=7 bedeutet, die Kategorie-ID ist 7).
  • Beitrags-ID herausfinden: Um die ID eines Beitrags zu finden, kannst Du in WordPress zu „Beiträge“ gehen und einen Beitrag bearbeiten oder in der Übersicht bearbeiten. In der URL des Browsers siehst Du die Beitrags-ID als Teil der URL (z. B. post=11723 bedeutet, die Beitrags-ID ist 11723).

Sticky-Post-Abfrage: Wenn eine Kategorie aufgerufen wird, die einen definierten Sticky-Post enthält, führt der Code eine separate Abfrage durch, um diesen Beitrag gezielt abzurufen. Diese Abfrage ignoriert die Standard-Sticky-Post-Einstellung von WordPress und holt den Beitrag gezielt auf Basis der ID.

Anpassung der Beitragsliste: Der gefundene Sticky-Post wird aus der regulären Liste entfernt (falls er schon vorhanden ist) und an den Anfang der Liste gesetzt. So wird sichergestellt, dass der Sticky-Post immer an oberster Stelle angezeigt wird, unabhängig von den anderen Beiträgen in der Kategorie. Danach wird die modifizierte Liste von Beiträgen zurückgegeben und auf der Seite angezeigt.

Anwendung des Codes in einem Projekt

Um den obigen Code in Dein WordPress-Projekt zu integrieren, empfehle ich Dir, das Plugin Code Snippets zu verwenden. Dieses Plugin bietet eine einfache und sichere Möglichkeit, benutzerdefinierten Code hinzuzufügen, ohne das Risiko einzugehen, Dein Theme zu beschädigen. Ich habe dieses Plugin schon mehrmals vorgestellt und es wird auch von GeneratePress empfohlen.

Schritte zur Integration des Codes mit Code Snippets:

  1. Installation des Plugins: Wenn Du Code Snippets noch nicht installiert hast, kannst Du es direkt über das WordPress-Plugin-Verzeichnis installieren.
  2. Erstellen eines neuen Snippets: Nach der Installation gehst Du zu „Snippets“ in Deinem WordPress-Dashboard und klickst auf „Neu hinzufügen”.
  3. Code einfügen: Kopiere den oben bereitgestellten Code in das Editorfeld des neuen Snippets.
  4. Snippet benennen und speichern: Gib dem Snippet einen aussagekräftigen Namen, z. B. „Sticky-Post für Kategorien“, und speichere es. Vergiss nicht, das Snippet zu aktivieren.
  5. Testen und Anpassen: Überprüfe auf Deiner Website, ob der Sticky-Post wie gewünscht funktioniert. Du kannst das Array sticky_posts_by_category anpassen, um weitere Kategorien und Beiträge hinzuzufügen.

Tipps zur Verwendung von Code Snippets:

  • Organisiere Deine Snippets: Benenne und kategorisiere Deine Snippets klar, damit Du den Überblick behältst.
  • Regelmäßige Backups: Obwohl Code Snippets eine sichere Methode zur Code-Integration ist, solltest Du regelmäßig Backups Deiner Website machen, bevor Du neue Snippets hinzufügst.

Fazit

Sticky-Posts sind eine ausgezeichnete Möglichkeit, wichtige Inhalte in Deinen Kategorien hervorzuheben und sicherzustellen, dass sie von Deinen Lesern immer leicht gefunden werden. Durch die Implementierung eines Sticky-Posts kannst Du die Sichtbarkeit Deiner wichtigsten Beiträge erhöhen, die Benutzererfahrung verbessern und sogar positive Effekte auf die SEO-Optimierung Deiner Website erzielen.

Mit dem bereitgestellten Code und der Verwendung des Plugins Code Snippets hast Du nun ein leistungsfähiges Werkzeug an der Hand, um diese Funktionalität in Dein WordPress-Projekt zu integrieren. Egal, ob Du wichtige Ankündigungen, hilfreiche Ressourcen oder besondere Angebote hervorheben möchtest – Sticky-Posts bieten Dir die Flexibilität, Deine Inhalte gezielt zu steuern und Deinen Lesern einen besseren Zugang zu bieten.

Ich ermutige Dich, den Code auszuprobieren und ihn nach Deinen Bedürfnissen anzupassen. Die Integration ist einfach, und die Vorteile für Deine Website sind erheblich. Solltest Du auf Herausforderungen stoßen oder Fragen haben, stehe ich Dir gerne zur Verfügung, um Dich bei der Optimierung und Weiterentwicklung Deiner Website zu unterstützen.

Das könnte Dich auch interessieren

Logo Der Webfuchs

Der Webfuchs

"Der Webfuchs" ist ein Pseudonym des Webentwicklers Stephan Bloemers. Geboren 1967 in Duisburg und aktuell in Düsseldorf ansässig, begann er bereits 1999 mit der Erstellung von Websites. Durch selbständiges Lernen erwarb er die notwendigen HTML-Kenntnisse und registrierte 2001 seine erste Top-Level-Domain "derwebfuchs.de", die damals bereits kostenlose Ressourcen für Webmaster bereitstellte.

Über die Jahre hat Stephan weitere Projekte realisiert, darunter einen Blog über seinen damaligen Kegelclub. Alle von ihm erstellten Websites werden als Hobby betrieben.

Neben dem Basteln an seinen Websites verbringt Stephan seine Freizeit gerne mit Spielen wie Poker oder Schach.

Stephan hat sich im Laufe seiner Karriere auf die Entwicklung von benutzerfreundlichen und effektiven Websites spezialisiert. Seine Leidenschaft für Technologie und Design spiegelt sich in seiner Arbeit wider und er ist stets bemüht, auf dem neuesten Stand zu bleiben, um die bestmöglichen Lösungen anbieten zu können.

In seiner Freizeit ist Stephan ein begeisterter Blogger und teilt gerne sein Wissen und seine Erfahrungen mit anderen Webentwicklern und Interessierten. Seine Leidenschaft für die Online-Welt und seine Fähigkeit, komplexe Themen einfach und verständlich zu vermitteln, machen ihn zu einer wertvollen Ressource für alle, die sich für Webentwicklung und Online-Marketing interessieren.

Schreibe einen Kommentar

 Cookie Consent mit Real Cookie Banner