29 Code Snippets für WordPress

Die functions.php ist wohl die am meisten missachtete Datei in WordPress. Man kann mittels der Datei eine Menge regeln, ohne alles mit einem Plugin totschlagen zu müssen. Insofern bin ich (inzwischen) immer drauf bedacht, erst einmal zu versuchen, die Funktionalität in dieser Datei zu gewährleisten, anstatt ein Plugin zu installieren. Plugins haben natürlich auch ihre Vorteile (Stichwort: Wiederverwendbarkeit), aber für die meisten reicht es in der Regel, einen kleinen Code-Block in die functions.php mittels Copy&Paste einzutragen.

Hongkiat hat eine interessante Liste von 29 Code Snippets für Beiträge und Seiten veröffentlicht, die wirklich sehr gut demonstrieren, was mit der functions.php möglich ist. Dieser kleine Block ermöglicht zum Beispiel „Related Posts“ ohne Plugin und zusätzliche Datenbank:

<?php
    $tags = wp_get_post_tags($post->ID);  
    if ($tags) {  
        $tag_ids = array();  
        foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;  
        $args=array(  
        'tag__in' => $tag_ids,  
        'post__not_in' => array($post->ID),  
        'showposts'=>5, // Number of related posts that will be shown.  
        'caller_get_posts'=>1  
        );  
        $my_query = new wp_query($args);  
        if( $my_query->have_posts() ) {  
            echo '<h3>Related Posts</h3><ul>';  
            while ($my_query->have_posts()) {  
                $my_query->the_post();  
                ?>  
                <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>  
            <?php  
            }  
            echo '</ul>';  
        }  
    }  
?>

Man muss an dem Code-Snippet natürlich noch etwas Hand anlegen, da man es so nicht direkt verwenden kann, aber der Weg ist klar, und mit ein bisschen Aufwand praktikabel und schnell.

Lange Rede, kurzer Sinn: packt euch euer WordPress nicht so mit Plugins zu, und heult anschließend, dass der Blog so langsam ist, um dies dann wiederum mit einem Plugin zu bekämpfen! ;) Stattdessen kleinere Sachen einfach mal selbst über das CSS oder die functions.php regeln. Das geht schneller und erzeugt weniger Overhead!

Ähnliche Beiträge

In WordPress den Papierkorb automatisch leeren Der Papierkorb in WordPress ist so eine Sache, löschen tue ich die Sachen ja meistens, und dann fristen sie ein nicht so schönes Leben im Papierkorb. ...
In WordPress die Leser für neue Themenvorschläge i... Ich gebe zu der Titel ist äußerst bescheiden, aber was Besseres ist mir nicht eingefallen! Ich beobachte seit geraumer Zeit ein kleines Tool bei phpha...
WordPress – Themenvorschläge von Lesern Wie ich schon desöfteren in diesem Blog verkündet habe, bin ich ein echter Fan der Ideenschmiede von PHPHatesMe bin. Nachdem ich Nils diesbzgl. schon ...
Font Awesome in den Advanced Custom Fields von Wor... Gab es ein Leben vor Font Awesome? Es gibt kaum eine Seite die den Webfont nicht benutzt. Genau sowenig gibt es noch eine WordPress-Seite die ohne die...

2 Kommentare

  • Ich antworte mit einem enschiedenem Jein! ;) Ein einfaches Beispiel: hätte ich 10 kleinere Plugins installiert, die allesamt nur Kleinigkeiten erledigen (Feed beeinflussen, Ausgabe filtern, Autorenbox, etc.) dann habe ich 10 Dateien die ich laden muss – zusätzlich. Und selten kommt ein Plugin mit einer Datei allein (Meistens machen die noch irgendeinen Blödsinn im Admin-Bereich). Da wird aus den 10 Dateien durchaus mehr, die functions.php wird aber sowieso geladen. Heißt: wenn ich es schaffen würde die Plugins über die functions.php zu verringern, spare ich immens Dateizugriffe (und wahrscheinlich auch PHP). Ansonsten hast du Recht: die reine Ausführung kostet bei Plugin und functions.php gleich viel, das Spannende ist das Drumherum, das weg fällt.

  • Der erste Kommentar ist gleich eine doofe Frage ;-)
    Woran kann man denn den Unterschied festmachen zwischen dem Overhead, den ein Plugin erzeugt und dem, den der Codeschnipsel erzeugt? Die Aktion ist ja dieselbe, das heisst die Belastungen auf Datenbank und Server sollten doch eigentlich gleich sein, oder?

Schreibe einen Kommentar