Post / Beitrag als Startseite
-
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!
-
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 derindex.php
findest.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ägesingle.php
, für die Suchergebnissesearch.php
und eben für eine Startseite mit einer statischen Seitefront-page.php
. Dieindex.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 dieindex.php
kopierst, statt in diefront-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 Templatefront-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 einget_header()
undget_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, dieindex.php
alsfront-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.
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
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 derindex.php
des Parent Themes gemacht wurde.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.
- Das Thema „Post / Beitrag als Startseite“ ist für neue Antworten geschlossen.