Support » Allgemeine Fragen » Seite Web anlegen nur Kategorie Web anzeigen

  • Hallo,

    gibt es eine Möglichkeit eine Seite in meinem Fall Web anzulegen und dass dann dort nur Beiträge mit der Kategorie web sind und aber alle anderen auf der Startseite angezeigt werden.

    Danke im Vorhinein.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Ja, gibt es.

    Reicht dir das als Antwort? 😛

    Vermutlich nicht. Also Schritt für Schritt:

    1. Du erstellst unter Beiträge > Kategorien eine Kategorie web.
      Fährst du anschließend mit der Maus über den Eintrag der neuen Kategorie, wird dir im Link die ID der Kategorie gezeigt. https://example.com/wp-admin/term.php?taxonomy=category&tag_ID=42&post_type=post&wp_http_referer=%2Fwp-admin%2Fedit-tags.php%3Ftaxonomy%3Dcategory enthält z.B. tag-ID=42 – die ID ist also 42. Diese Zahl merkst du dir.
    2. Du erstellst Beiträge und weist sie der Kategorie Web hinzu. Alternativ kannst du in der Beitragsübersicht auch in einer Mehrfachaktion Beiträgen, die du mit dem Kontrollkästchen ausgewählt hast, die Kategorie zuweisen: Du wählst die Beiträge aus, klickst auf Mehrfachaktion, gehst auf Bearbeiten [1] und weist den ausgewählten Beiträgen [2] die Kategorie webzu [3], was du mit Aktualisieren [4] bestätigst.
      Screenshot Einstellungen
    3. Du erstellst unter Design > Menüs ein eigenes Menü (sofern nicht bereits vorhanden) und fügst dort die Kategorie:Web als Menü-Eintrag hinzu. Vergiss nicht, das Menü zu speichern.

      Screenshot Einstellungen

      Im Ergebnis sehen Besucher, die diesen Link aufrufen, nur Beiträge der Kategorie web.

    4. Nun musst du noch ein paar Zeilen PHP-Code hinzufügen.
      Da Änderungen im Theme beim nächsten Theme-Update überschrieben werden, kannst du die PHP-Funktion nicht in die functions.php deines Themes schreiben.
      Verwendest du bereits ein Child-Theme, kannst du die Zeilen in der functions.php des Child-Themes anhängen. Für diese kleine Änderung aber extra ein Child-Theme zu erstellen, wäre etwas übertrieben. Bequemer geht das mit dem Plugin Code Snippets, bei dem du den Code als neues Snippet hinzufügst:

      add_action( 'pre_get_posts', 'ohne_kategorie_web' );
      
      function ohne_kategorie_web( $query ) {
         if ( $query->is_home() && $query->is_main_query() ) {
         $query->set( 'category__not_in', '42' );
         }
      }

      Wichtig ist, dass hier die unter Schritt 1 notierte ID in der Zeile $query->set( 'category__not_in', '-42' ); verwendet wird. Der Parameter category__not_in hat insgesamt drei Unterstriche.

    Und schon hast du eine eigene Seite für die Kategorie Web.
    Gar nicht so kompliziert, oder? 🙂

    Thread-Ersteller Alexander Wagner

    (@agw2020)

    Danke @pixolin,

    hat funktioniert.

    Jetzt nur eine Frage ist es möglich eine Seite mit Web zu erstellen, wo die Beiträge angezeigt werden und ich oben noch ein paar Zeilen Text schreiben kann.

    Du kannst eine neue, statische Webseite anlegen, einen Begrüßungstext schreiben und dann einen Block „Neueste Beiträge“ einfügen. In der Sidebar musst du dann angeben, dass nur die Beiträge der Kategorie Web angezeigt werden sollen.

    Dabei gibt es zwei Probleme:

    1. bei sehr vielen Beiträgen gibt es keine Paginierung
    2. je nach Theme kann die Ausgabe der Beiträge anders aussehen als auf den anderen Beitragsübersichtsseiten (Blog-Seite, Archive).

    Wenn du das vermeiden möchtest, musst du ein Child-Theme anlegen und ein eigenes Template schreiben, wobei besonders auf die Paginierung zu achten ist. Oder du kopierst ein Template category.php in category-web.php und fügst in diesem Template Code ein, um den Inhalt einer anderen Seite auszugeben (oder einen als Option im Customizer festgelegten Inhalt). Das (noch) ausführlicher zu beschreiben sprengt aber etwas meinen zeitlichen Rahmen.

    Thread-Ersteller Alexander Wagner

    (@agw2020)

    Ok @pixolin,

    danke für deine Hilfe.
    Ich glaube ich lass es so einmal.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)