• Hallo, hat jemand eine Idee wie ich den immer zuletzt geschrieben Beitrag (Post) als Startseite einstellen kann?
    Auf der Beitragsseite habe ich Pfeile mit der der Besucher sich dann durch die anderen Beiträge navigieren kann. Danke für einen Tipp!

Ansicht von 6 Antworten – 1 bis 6 (von insgesamt 6)
  • Dazu kannst du ein Child Theme anlegen und ein neues Template front-page.php anlegen (bzw. aus dem Parent Theme kopieren). In diesem Template fügst du eine neue Abfrage ein:

    
    // WP_Query arguments
    $args = array(
    	'post_type'              => array( 'post' ),
    	'post_status'            => array( 'publish' ),
    	'posts_per_page'         => '1',
    );
    
    // The Query
    $query = new WP_Query( $args );
    
    // The Loop
    if ( $query->have_posts() ) {
    	while ( $query->have_posts() ) {
    		$query->the_post();
    		// do something
    	}
    } else {
    	// no posts found
    }
    
    // Restore original Post Data
    wp_reset_postdata();
    

    Damit das Layot einheitlich ist, musst du ggf. noch die <div>-Tags übernehmen, die du z.B. in der index.php findest.

    Thread-Starter joey111

    (@joey111)

    Hallo, vielen Dank für Ihre Antwort! Könnte ich den Code auch einfach in die index.php kopieren?

    Ist der Code korrekt? wenn ich den in Dreamweaver einfüge bleibt der einfach grau.

    Du hast bisher noch nicht viel für WordPress programmiert, oder?

    WordPress verwendet eine Template-Hierarchie. Das heißt, dass WordPress versucht, das ideale Template für die Darstellung des aufgerufenen Inhalts der Webseite zu verwenden — für Seiten z.B. page.php, für einzelne Blogbeiträge single.php, für die Suchergebnisse search.php und eben für eine Startseite mit einer statischen Seite front-page.php. Die index.php ist ein allgemeines Template, auf das WordPress zurückgreift, wenn es kein spezielles Template findet. Wenn du den Code also im Child Theme in die index.php kopierst, statt in die front-page.php, gilt der Code für alle Webseiten, für die es kein spezielleres Template gibt. Du möchtest aber gerade für die Startseite eine andere Aufbereitung. Deshalb musst du schon ein Template front-page.php nehmen.

    Damit in Dreamweaver der Code mit Syntax-Highlighting angezeigt wird, muss die Datei auch als .php abgespeichert werden und der Code mit einem PHP-Tag <?php eingeleitet werden. Zusätztlich muss das Template mindestens über ein get_header() und get_footer() verfügen, weil sonst Header und Footer nicht eingebunden werden. Wahrscheinlich möchtest du auch noch eine Sidebar anzeigen und die CSS-Klassen übernehmen, die das Theme in den anderen Templates verwendet. Am einfachsten ist es, die index.php als front-page.php zu kopieren und dann dort an Stelle der Loop den o.g. Code einzufügen.

    Wenn du allerdings keine Programmierkenntnisse haben solltest, ist es wahrscheinlich einfacher, wenn du das Plugin Shortcodes Ultimate installierst und in die Startseite einen Shortcode für die Anzeige des letzten Blogbeitrags einfügst.

    Thread-Starter joey111

    (@joey111)

    Noch mal vielen Dank für Ihre Antwort und Hilfe. Ich versuche mich immer noch zu verbessern.

    Ich habe die index.php in die front-page.php kopiert. Das funktioniert auch. Dann habe ich Ihren Code Hinzugefügt. Das Header und Footer werden angezeigt. Sonst leider nichts. Habe ich was falsch gemacht?

    Hier mein Code: https://picload.org/view/dralpddi/bildschirmfoto2017-11-10um14.4.jpg.html

    • Diese Antwort wurde geändert vor 6 Jahren, 10 Monaten von joey111.
    • Diese Antwort wurde geändert vor 6 Jahren, 10 Monaten von joey111.

    Naja, die Kommentar-Zeile //do something war nicht nur philosophisch gemeint. 🙂

    Du musst schon angeben, was du vom Beitrag wie ausgegeben haben möchtest. Den Titel z.B. mit <h2><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>, dann den Inhalt <?php the_content(); ?> und so weiter … Schau dir doch mal im Vergleich dazu an, wie das in der index.php des Parent Themes gemacht wurde.

    Thread-Starter joey111

    (@joey111)

    Für alle die dies auch Interessiert. Ich habe es hinbekommen. Und zwar so:

    diesen Code:

    <?php
    $last_post = get_posts( array(
    ‚posts_per_page‘ => 1
    ) );

    if ( $last_post ) wp_safe_redirect( get_permalink( $last_post[0]->ID ) );
    ?>

    ganz oben in die index.php des Themes kopieren. Dann öffnet sich nach Eingabe der Domain immer der letzte Beitrag der geschrieben wurden.

Ansicht von 6 Antworten – 1 bis 6 (von insgesamt 6)
  • Das Thema „Post / Beitrag als Startseite“ ist für neue Antworten geschlossen.