Support » Allgemeine Fragen » Beiträge beliebig aufbauen

  • Hallo!
    Ich habe eine Frage zu den Blogbeitragen.
    Geplant habe ich Folgendes:

    Ich habe eine Seite „Aktuelles“ auf der soll der Beitrag angeteasert werden. Sprich: Bild, Überschrift und einen kurzen inhaltlichen Ausschnitt des Beitrages (evtl. so 40 Wörter) mit einem Link zum vollständigen Blogeintrag.

    Auf der Seite „Aktuelles“ soll man auf alle Einträge zugriff haben (evtl kann man sich dann da durchklicken, dass immer 10 Einträge angezeigt werden).

    Auf der Startseite sollen immer die ersten 3 neusten Beiträge ausgegeben werden. Jeweils auch mit Bild, Überschrift, Textausschnitt und Link zum Eintrag.

    Allerdings habe ich da folgende Probleme mit:

    • Wie kann ich den Beitrag so verändern, dass ich nicht nur Titel und Text eingeben kann sondern auch ein Bild dazu?
    • Wie kann ich bestimmen wie viele Worte vom kompletten Content angeteasert werden?
    • Wie kann ich mir die ersten 3 Beiträge immer auf der Startseite ausgeben lassen wie oben beschrieben?

    Auf der Aktuellesseite werden mir die Beiträge bereits ausgegeben, allerdings der komplette Inhalt immer, das muss dringend geändert werden. Kann mir jemand mit meinen Fragen helfen?

    LG

Ansicht von 1 Antwort (von insgesamt 1)
  • Wie kann ich den Beitrag so verändern, dass ich nicht nur Titel und Text eingeben kann sondern auch ein Bild dazu?

    Dazu muss dein Theme zunächst einmal Beitragsbilder unterstützen. Entweder ist dafür in der functions.php bereits eine entsprechende Funktion add_theme_support( 'post-thumbnails' ); vorhanden oder du musst ein Child Theme erstellen und die Funktion hinzufügen.
    Wenn du dann Seiten oder Beiträge bearbeitest, kannst du über das Pulldown-Menü „Ansicht anpassen“ festlegen, ob das Kästchen zum Hinzufügen von Beitragsbildern angezeigt wird. Hier kannst du dann festlegen, welches Bild als Beitragsbild angezeigt wird. Die Ausgabe erfolgt im Template mit the_post_thumbnail( 'medium' );, wobei in der Klammer die Größe angegeben wird.

    Die meisten Themes unterstützen bereits Beitragsbilder. Ich würde also erst einmal schauen, ob beim Bearbeiten von Beiträgen bereits ein Eingabefeld für Beitragsbilder vorhanden ist oder ggf. nur über „Ansicht anpassen“ ausgeblendet wurde.

    Wie kann ich bestimmen wie viele Worte vom kompletten Content angeteasert werden?
    Während im Template die Funktion the_content() den gesamten Inhalt eines Beitrags oder einer Seite ausgibt, liefert the_excerpt() entweder einen alternativen Text, der bei der Erstellung des Beitrags eingeggeben wurde, oder einen gekürzten Auszug des Beitrags ohne HTML-Formatierung.

    Wie lang dieser Text ist, lässt sich mit einer Funktion in der functions.php festlegen:

    function wpdocs_custom_excerpt_length( $length ) {
        return 20;
    }
    add_filter( 'excerpt_length', 'wpdocs_custom_excerpt_length', 999 );
    

    (Quelle)

    Alternative: Mit wp_html_excerpt( $post->post_content, '42' ) erhältst du einen auf 42 Zeichen gekürzten Auszug des Beitragsinhalt mit HTML-Formatierung.

    Wie kann ich mir die ersten 3 Beiträge immer auf der Startseite ausgeben lassen wie oben beschrieben?

    Dazu fügst du im Template frontpage.php eine Funktion ein, z.B. <?php echo intro_beitraege(); ?>, die du in der functions.php definierst:

    function intro_beitraege() {
      $out = '';
        $args = array(
          'post_type'           => 'post',
          'post_status'         => 'publish',
          'order'               => 'DESC',
          'orderby'             => 'date',
          'ignore_sticky_posts' => true,
          'posts_per_page'      => 3,
        );
      $intro = new WP_Query( $args );
      if ( $intro->have_posts() ) {
        while ( $intro->have_posts() ) {
          $intro->the_post();
    
          $out .= get_the_post_thumbnail( 'medium' );
          $out .= '<h3><a href="' . get_the_permalink() . '">' . get_the_title() . '</a></h3>';
          $out .= '<p>' . get_the_excerpt() . '</p>';
        }
      };
      wp_reset_postdata();
      return $out;
    }

    Wenn du nur bestimmte Beiträge auf der Startseite zeigen möchtest, kannst du ihnen z.B. eine zusätzliche Kategorie „teaser“ zuweisen und diese noch als Abfrage-Attribut hinzufügen:

    $args = array(
          'post_type'           => 'post',
          'post_status'         => 'publish',
          'order'               => 'DESC',
          'orderby'             => 'date',
          'ignore_sticky_posts' => true,
          'posts_per_page'      => 3,
          'category_name'       => 'teaser',
    }
Ansicht von 1 Antwort (von insgesamt 1)
  • Das Thema „Beiträge beliebig aufbauen“ ist für neue Antworten geschlossen.