5. Oktober 2024 Timo Hörske - persönlicher Blog

Plugins entmüllen – Selbermachen statt Faulheit

In den letzten Wochen habe ich mich wieder mehr mit der Technik hinter meinem Blog beschäftigt. Seit mittlerweile fast vier Jahren blogge ich für euch auf dieser Seite. Über die Zeit haben sich eine ganze Menge Plugins angesammelt. Viele der Funktionen sind ganz nett, einige Funktionen haben ihre Zeit überlebt und werden nicht mehr benötigt. Höchste Zeit ein paar der unnötigen Plugins rauszuschmeißen, dass reduziert die Ladezeiten der Seite und entlastet den Wartungsaufwand.

Plugins aus Faulheit

Einige der Plugins sind auch einfach aus Faulheit im System gelandet, obwohl die Umsetzung auch manuell mit wenig Programmierungsaufwand umzusetzen gewesen wäre. So ein Fall war das Plugin um eine Sitemap zu erstellen. Die Auslesefunktionen von WordPress reichen aus, um mit wenigen Skripts eine einfache Sitemap darzustellen.

Sitemap selber machen

Nicht nur für Google sind Sitemap super. Sondern auch für euch als Leser sind sie äußerst praktisch. So könnt ihr auf einen Blick die neuesten Beiträge, die Seiten, die Kategorien (mit dem dazugehörigen jeweiligen Feeds) sowie die monatlichen Archive mit der Anzahl der Artikel sehen. Hoffentlich findet ihr so schneller was euch interessiert.

Heute zeige euch wie ihr mit den Standardfunktionen von WordPress selber ein ansehnliches Sitemap erstellt. Wie sieht es fertig aus? Hier geht es zu meinem Sitemap.

Template erstellen

Im ersten Schritt erzeugen wir ein Template für die Seite. Dazu erstellt ihre eine Datei mit dem Namen template-sitemap.php . Diese gehört in den Templateordner eures (Child-) Themes.

Danach müssen wir WordPress mitteilen, dass es sich bei der Datei um ein Seiten Template handelt. Dazu nutzen wir den folgenden Header:

<?php /* Template Name: Sitemap */

get_header(); ?>

Auslesen und Anzeigen der neusten Artikel

Das Template ist definiert. Nun kümmern wir uns um die Struktur der neuen Seite. Dazu verwenden wir HTML Markups für die Struktur und einige interne WordPress-Funktionen.

Mit dem wp_query() Loop von WordPress lesen wir die letzten 20 Beiträge aus und zeigen sie an. Es ist natürlich auch möglich mehr oder weniger Artikel anzeigen zu lassen.

<ul class="mh-sitemap-list">
    <?php $recent = new WP_query(array('posts_per_page' => 20)) // Anzahl der anzuzeigenden Artikel ;
     while ($recent->have_posts()) : $recent->the_post(); ?>
    <li class="sitemap-list-item">
        <a href="<?php the_permalink(); ?>">
            <?php the_title(); ?>
        </a>
    </li>
    <?php endwhile; wp_reset_postdata(); ?>
</ul>

Auflistung der Seiten

Im nächsten Schritt geht es um die Anzeige der vorhandenen Seiten:

<ul class="mh-sitemap-list">
    <?php wp_list_pages(array( 'title_li' => '', 'post_status' => 'publish' ) ); ?>
</ul>

Wenn ihr einzelne Seiten nicht anzeigen lassen wollt, wird der Code noch ein wenig ergänzt:

<ul class="mh-sitemap-list">
    <?php wp_list_pages(array( 'title_li' => '', 'post_status' => 'publish', 'exclude' => 10,12 ) ); ?>
</ul>

In dem Beispiel werden die Seiten mit der ID 10 und 12 von der Anzeige ausgeschlossen. Wenn ihr die ID eurer Seite nicht kennt, dann geht in die Bearbeitung eurer Seite mit dem Editor und schaut in die angezeigte URL. Dort wird die ID aufgeführt.

Auch ganz nett: monatliche Archive

Mit der folgenden Funktion werden die monatlichen Archive im Seiten Template ausgegeben mit der Anzahl der dazugehörigen Artikel:

<ul class="mh-sitemap-list">
    <?php wp_get_archives( 'type=monthly&show_post_count=1' ); ?>
</ul>

Kategorien und deren Feeds

Als letztes Code Snippet kommen noch die Kategorien mit ihren dazugehörigen Feeds in das Template:

<ul class="mh-sitemap-list">
    <?php wp_list_categories(array( 'title_li' => '', 'feed' => 'RSS', 'show_option_none' => esc_html__( 'Keine Kategorien vergeben', 'evolution' ) ) ); ?>
</ul>

Der ganze Code

Wie ihr in meinem Sitemap sehen könnt, habe ich mich für ein vierspaltige Darstellung ohne Sidebar entschieden. Dazu benötigt man folgenden Code:

<?php /* Template Name: Sitemap */

get_header(); ?>

<div class="row">

<div class="row-content buffer-left buffer-right buffer-bottom">

<div class="column full">
<h1 class="entry-title sitemap"><?php the_title(); ?></h1>
<div class="mh-row sitemap">

<div class="mh-col-1-4 col-1">
    <h5 class="mh-widget-title">
        <span class="mh-widget-title-inner">
            <?php esc_html_e('Neueste Artikel', 'evolution'); ?>
        </span>
    </h5>
    <ul class="mh-sitemap-list">
        <?php $recent = new WP_query(array('posts_per_page' => 20));
            while ($recent->have_posts()) : $recent->the_post(); ?>
        <li class="sitemap-list-item">
            <a href="<?php the_permalink(); ?>">
                <?php the_title(); ?>
            </a>
        </li>
        <?php endwhile; wp_reset_postdata(); ?>
    </ul>
</div>
<div class="mh-col-1-4 col-2">
    <h5 class="mh-widget-title">
        <span class="mh-widget-title-inner">
            <?php esc_html_e('Seiten', 'evolution'); ?>
        </span>
    </h5>
    <ul class="mh-sitemap-list">
        <?php wp_list_pages(array('title_li' => '', 'post_status' => 'publish')); ?>
    </ul>
</div>
<div class="mh-col-1-4 col-3">
    <h5 class="mh-widget-title">
        <span class="mh-widget-title-inner">
            <?php esc_html_e('Die Archive', 'evolution'); ?>
        </span>
    </h5>
    <ul class="mh-sitemap-list">
        <?php wp_get_archives('type=monthly&show_post_count=1'); ?>
    </ul>
    </div>
 <div class="mh-col-1-4 col-4">
    <h5 class="mh-widget-title">
        <span class="mh-widget-title-inner">
            <?php esc_html_e('Kategorien', 'evolution'); ?>
        </span>
    </h5>
    <ul class="mh-sitemap-list">
        <?php wp_list_categories(array( 'title_li' => '', 'feed' => 'RSS', 'show_option_none' => esc_html__( 'Keine Kategorien vergeben', 'evolution' ) ) ); ?>
    </ul>
</div>
</div><!-- end .row -->

</div><!-- column -->

</div><!-- row-content -->

</div><!-- row -->
<div class="clear"></div>

<?php get_footer(); ?>

Die Optik

Natürlich muss auch die Optik stimmen, dazu noch ein bisschen Code für die style.css eures Themes:

/* Vier Spalten für die Sitemap */
.mh-col-1-4 {
width: 20% !important;
float: left !important;
clear: none !important;
margin-left: 4.5% !important;
}

.mh-row [class*='mh-col-']:first-child {
margin: 0 !important;
}

Die Vorbereitungen wären damit abgeschlossen. Nur noch per FTP in den entsprechenden Ordner eurer WordPress Installation hochladen und die Erstellung des Sitemap kann beginnen.

Letzte Schritte

Bei WordPress eine neue Seite anlegen und auf der rechten Seite im Editor unter Seiten-Attribute das Sitemap-Template auswählen. Veröffentlichen und Fertig!

Empfehlungen

Die Anleitung gefunden habe ich bei Andreas Hecht. Dort habe ich auch wieder ein neues Plugin entdeckt: AH Code Highlighter Plugin. Dieses sorgt in diesem Artikel dafür, dass der Code so schön angezeigt wird.

Off-Topic

Zurück zum Thema: Beim Ausmisten sind 7 Plugins rausgefolgen. Eines konnte ich durch diese Anleitung ersetzen, auch wenn ich für diesen Artikel wieder eines hinzugefügt habe.

Nach einer Textanalyse ist dieser Text zu 44% subjektiv, die wichtigsten Worte sind: Anzeige, Faulheit, WordPress, Editor, Sitemap, Plugin, Seite

Ein Computer würde diesen Text der Kategorie Internet zu ordnen. Diese Kategorie habe ich noch nicht, daher ab in den Bereich Technik.

Bildquellen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Der Zeitraum für die reCAPTCHA-Überprüfung ist abgelaufen. Bitte laden Sie die Seite neu.