Support » Themes » Beiträge auf Front Page anzeigen

  • Gelöst ottang

    (@ottang)


    Hallo Leute,

    ich bin recht Neu was WordPress & was vor allem PHP angeht.
    Habe mir vor ewigkeiten ein Tutorial gekauft zum Designen von WordPress seiten.
    HTML & CSS stellen so kein Problem da.

    Folgendes, ich möchte auf meiner front-page.php Beiträge ausgeben lassen, Vier stück.

         <?php 
            
            $args = array(
                post_type => 'post',
                posts_per_page => 4
            );
            
            $loop2 = new WP_Query($args);
            
            if ( $loop2->have_posts() ) : while ( $loop2->have_posts() ) : $loop2->the_post(); ?>
               <?php get_template_part('template_parts/content');?>
            <?php endwhile; else : ?>
                <?php get_template_part('template_parts/content','error');?>
            <?php endif; wp_reset_postdata(); ?>

    das ist der entsprechende Code im Tutorial, kann damit aber nichts direktes anfangen da dann ein Error erscheint das post_type in der neuen php version nicht funktioniert.

    • Dieses Thema wurde geändert vor 3 Jahre von ottang.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Moderator Bego Mario Garde

    (@pixolin)

    Dass die Startseite ganz allgemein (alle) Beiträge (paginiert) ausgibt, kannst du bereits in Einstellungen > Lesen festlegen. Dazu brauchst du dann kein Template.

    Wenn du auf der Startseite nur bestimmte Beiträge ausgeben möchtest, kannst du in der functions.php einen pre_get_posts-Filter anlegen. Damit sagst du WordPress, bevor es überhaupt das Template aufruft, wieviele Beiträge welcher Kategorie du haben möchtest. Das ist effizienter, als erst alles abzurufen (was WordPress automatisch macht, bevor es Templates öffnet), dann diese Abfrage komplett zu verwerfen und dann eine neue Abfrage (new WP_Query()) zu starten.

    Mit

    
    // functions.php
    
    function my_frontpage( $query ) {
        if ( $query->is_front_page() && $query->is_main_query() ) {
            $query->set( 'cat', '42' );
        }
    }
    add_action( 'pre_get_posts', 'my_frontpage' );

    kannst du z.B. festlegen, dass auf der Startseite nur Beiträge der Kategorie 42 aufgeführt werden.

    Solltest du dich trotzdem dafür entscheiden, im Template eine neue Abfrage zu verwenden, solltest du zumindest die Programmierfehler korrigieren, die dir angezeigt werden.

    
    
    $args = array(
       'post_type'      => 'post',
       'posts_per_page' => 4,
    );
    Thread-Ersteller ottang

    (@ottang)

    Hey,

    ich danke dir für deine Antwort, allerdings bin ich was PHP angeht nahezu eine Null ^^

    Auf meiner Startseite soll ein Teil halt Beiträge anzeigen, der andere teil soll entsprechend Statisch sein daher dachte ich wäre eine separate front page das idealste um es für mich an zu passen.

    Nur um das zu verstehen,

    Ich erstelle eine functions.php seite, stelle dort den Code wie oben abgebildet rein & ich bekomme dann eine Ausgabe auf meiner front-page.php ohne weiteren code?

    Moderator Bego Mario Garde

    (@pixolin)

    Auf meiner Startseite soll ein Teil halt Beiträge anzeigen, der andere teil soll entsprechend Statisch sein

    Das hattest du bisher so nicht beschrieben.

    In dem Fall wäre es besser, unter Einstellungen > Lesen anzugeben, welche statische Seite du gerne als Startseite haben möchtest. In dieser Seite könntest du z.B. einen Widget-Block „Neueste Beiträge“ einfügen. In den Blockeinstellungen kannst du angeben, ob bzw. wieviel vom Inhalt gezeigt werden soll, wieviel Beiträge angezeigt werden sollen, usw.

    Eine Alternative wäre, ein Shortcode-Plugin zu verwenden – z.B. Shortcodes Ultimate. Das bietet dir einen Shortcode für das Platzieren von Beiträgen an. Dann kannst du ganz nach Lust und Laune erst ein bisschen Text deiner statischen Seite, dann die Beiträge, dann wieder statischen Text … ausgeben lassen, wie du magst.

    Die Lösung mit einem Template front-page.php in einem Child Theme geht auch, aber das hart codiert vorzugeben nimmt dir die Flexibilität eines CMS. Und wenn du dich dann nicht mal fit in PHP fühlst …

    Thread-Ersteller ottang

    (@ottang)

    Ahhh, ok ich Danke dir für deine Hilfe.

    Falls noch mal was sein sollte melde ich mich =)

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „Beiträge auf Front Page anzeigen“ ist für neue Antworten geschlossen.