Web-Content-Management mit WordPress

WordPress Kurs
00. 00 - 00. 00 2020 | 00.00 - 00:00 Uhr |

Ein eigenes Template für eine Blog-Kategorie erstellen

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"
  • Screenshot

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.
  • Screenshot
  • Speichere deine neue Seite und teste das Ergebnis im Browser.

    Screenshot
    Ansicht der einzelnen Beiräge im Block-Layout

« zurück