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-Starter
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?
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-Starter
ottang
(@ottang)
Ahhh, ok ich Danke dir für deine Hilfe.
Falls noch mal was sein sollte melde ich mich =)