Eigene Templates und Template-Parts müssen in einem Child-Theme erstellt werden. (Anleitung Child-Theme).
Die Ordner im Child-Theme
Es muss ein Ordner für das neue Template und ein weiterer für den Template-Part erstellt werden.
- Erstelle einen Ordner "templates" in deinem Child-Theme
- Erstelle darin die Template-Datei "template-start.php"
Template Start
- Öffne die Datei "template-start.php" im Editor
- Kopiere den folgenden Code, füge ihn in deine Datei und speichere sie.
<?php /* Template Name: Start Template */ get_header(); ?> <main id="site-content" role="main"> <section class="start" id="startblog"> <?php // Array der Argumente und Sortierung des Datenbankaufrufs. $args = array( 'posts_per_page' => 20, 'category_name' => 'Startseite','orderby' => 'date', 'post_status' => 'publish'); // Variable der WP_Query und deren Argumente. $the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) : // Start des Loops while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <article> <div class="blogtitel"><?php the_title(); ?></div> <div class="bloginhalt"><?php //the_excerpt(); the_content(); ?></div> </article> <?php // End the Loop endwhile; else: // Wenn keine Beiträge vorhanden sind. _e( 'Sorry, kein Post für dieses Suchkriterium.', 'textdomain' ); endif; wp_reset_postdata(); ?> </section> </main><!-- #site-content --> <?php get_template_part( 'template-parts/footer-menus-widgets' ); ?> <?php get_footer(); ?>
Beachte, dass der "Template Name: Start Template" auf der Kommentarzeile 2, die Template-Bezeichnung beinhaltet die im Dropdown angezeigt werden soll. - Der Code für dieses Template stammt weitgehend aus dem Theme "Twentytwenty". Es werden Header, Widgets und Footer inkludiert, Gestalung/CSS des "site-content" unverändert übernommen.
- Individuell sind aber die HTML-Elemente: <section class="start" id="startblog"> und <article> sie bilden die einzelnen als Blöcke dargestellten Beiträge und deren Inhalte.
CSS für das Layout der Beiträge als Responsiv-Blocks
- Die "section" beinhaltet alle Blöcke die mit "display:flex;" gesammelt werden. Die einzelnen "article" werden als Blöcke dargestellt. Für Tablet und Smartphone werden die Blöcke in ihrere Breite angepasst.
/* Startblog ************************************/ #startblog { display:flex; flex-wrap: wrap; max-width:1200px; margin:auto; } #startblog article { margin:12px; background-color:#dedede; padding:12px; flex:1; min-width:30%; } div.blogtitel { font-size: 1.4em; color: #cd2653; font-weight: bold; margin-bottom:1em; } .post-meta-wrapper { margin:0; display: none; } /* Small Devices, Tablets */ @media only screen and (max-width : 768px) { #startblog article { margin:12px; background-color:#dedede; padding:12px; flex:1; min-width:40%; } } @media only screen and (max-width : 480px) { #startblog article { margin:12px; background-color:#dedede; padding:12px; flex:1; min-width:90%; } }
Die Argumente um die Kategorien zu sortieren
- Das Array "$args" beinhaltet die Sucjkriterien beim Datenbank-Aufruf:
- Anzahl dargestellte Posts
- Name der Kategorie die angezeigt wird "Startseite"
- Darstellung nach Datum, absteigend (Neuste Beiträge zuoberst)
- Nur veröffentlichte Beiträge (Private oder Passwortgeschützte werden nicht geladen)
// Array der Argumente und Sortierung des Datenbankaufrufs. $args = array( 'posts_per_page' => 20, 'category_name' => 'Startseite','orderby' => 'date', 'post_status' => 'publish');
Beiträge der Kategorie "Startseite" zuteilen
- Erstelle Beiträge die in dem "Start Template" zur Anzeige gelangen
- Erstelle dazu eine neue Kategorie "Startseite" (Diese Kategorie wurde in "$args" hinterlegt)
- Weise sie deinen Beiträgen zu
Das Start Template benutzen
- Erstelle eine neue Seite in deiner WordPress-Installation
- Unter "Seiten-Attribute > Template" kannst du der Seite nun deine neues "Event-Template" zuweisen.
- Speichere deine neue Seite und teste das Ergebnis im Browser.
Ansicht der einzelnen Beiräge im Block-Layout