Sidebar
ein-/ausblenden

WP - Performance meiner Startseite

Plugin für WordPress SEO

Anzeige

Durch den Artikel von Robert inspiriert, habe mich auf die Suche nach Plugins begeben, die die Datenbankabfrage nach oben drücken. Robert gibt dazu ja schon eine Menge an Tipps und viele seiner Kommentare erläutern noch mehr Hintergründe.
Nun, ich wollte aber auf die Darstellung meiner Startseite nicht unbedingt verzichten. Die Posts und Kommentare habe ich bisher mit dem Plugin "Customizable Comment Listings" in die Seite geladen. Leider drückt das Plugin die Querie-Abfrage enorm hoch. In meinem Fall möchte ich die letzten 10 Beiträge und Kommentare auf der Startseite darstellen, deshalb habe ich mich dafür entschieden, das ganze mit dem RSS-NewsFeed zu ermöglichen.
Mit der hier vorgestellten Lösug konnt ich mehr als 40 Anfragen, welche das Plugin duchführte, beseitigen. Auf anderen Blogs, wo ich WP als CMS einsetze, habe ich so ebenfalls einige Anfragen (ca. 20 Queries) unterbinden können. In den Fällen stelle ich nur die letzten Kommentar im Sidebar dar, bzw. auf einer extra Seite.

Abfrage der DB-Anfragen:

Um die DB-Anfragen und die benötigte Zeit auslisten, muss die folgenden Zeilen in euer Template integriert werden, am besten in den Footer.


<?php echo $wpdb->num_queries; ?> queries.
<?php timer_stop(1); ?> seconds.

Abfrage der Inhalte mit RSS

Der Feed von WordPress enthält alle relevanten Inhalte, so dass es eigentlich recht leicht ist, diese zu laden und entsprechend darzustellen. Dazu habe ich meine Plugin "RSSImport" ein wenig in der Ausgabe verändert, was allerdings nur notwendig ist, da ich das Design anpassen wollte.

Ein weiterer Vorteil von WordPess ist die vielfältige Ausgabe von Feeds, so kann prinzipiell aus jedem Teil der Seite ein Feed ausgegeben werden.

Beispiel:

  • Feed der Kommentare - http://www.Blogadresse.de/comments/feed/
  • Feed einer Kategorie - http://www.Blogadresse.de/category/Kategoriename/feed/

Mit Hilfe eines PHP-Plugins ist es möglich den etsprechenden Code in den Seiten und Beiträgen auszuführen. Somit kann eine Seite erstellt werden, ohne ein neues Template zu erstellen.

In meinem Fall sieht der Code der Startseite, also direkt in der Seite (mit PHP-Plugin "PHP Exec") folgendermaßen aus.


Willkommen

Herzlich Willkommen, ... <?php // Get Total Posts function get_totalposts() { global $wpdb; $totalposts = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_status = 'publish'"); return $totalposts; } // Get Total Comments function get_totalcomments() { global $wpdb; $totalcomments = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = '1'"); return $totalcomments; } ?>

Weblog - Die letzten Zehn

<?php RSSImportTwo(10,"http://bueltge.de/wp-rss.php",true,false,true,200); ?>

Kommentare - Die letzten Zehn

<?php RSSImportTwo(10,"http://bueltge.de/comments/feed/",true,false,true,100); ?>

Der String <?php ?> ist für die Verwendung von php-Code in den Seiten notwendig, dass ist vom jeweiligen php-Plugin abhängig.

Zusätzlich bilde ich noch zwei Funktionen (get_totalposts und get_totalcomments), in der alle veröffentlichten Beiträge und Kommentare aus der Datenbank gelesen werden. Damit stelle ich die Gesamtzahl zur Verfügung. Das gleiche mache ich übrigens in der sidebar.php, um die Anzahl der Kategorien und Beiträge anzuzeigen.

Hier ist eine Version des PHPImoprt-Plugins zu finden, mit der automatisch ein Link eingefügt wird zum "Weiterlesen" der Beiträge und Kommentare. Außerdem könnt ihr die Zeichen angeben, die auf der Seite angezeigt werden sollen.

Der Aufruf der Funktion erfolgt folgendermaßen:


<?php RSSImportTwo(10,"/feed/",true,false,true,200); ?>

(10-Anzahl der News,"FeedAdresse",true-Ausgabe mit Description,false-Titel nicht kürzen,true-Description kürzen,200-Zeichen von Description)

Mehr Infos und den Download zum verwendeten Plugin gibt es hier: RSSImportTwo Plugin

Stylesheet

Das Plugin gibt die Feeds innerhalb eines div-Containers aus, mit der class rssimporttwo. Darüber kann die Ausgabe ein wenig formatert werden. Die Title der beiträge und Kommentare werden mit dem Tag h5 ausgeben.
In meinem Fall formatiere ich den div zum Teil so, aber dass nur als Beispiel. Der Link zum "Weiterlesen" wird über die Klasse "more-link" formatiert, was sicher in jedem Theme vorhanden ist.


h1, h2, h3, h5 {
font-family: Palatino, "Palatino Linotype", "Book Antiqua",
"URW Palladio L", Georgia, serif;
font-weight: bold
}

h5 {
font-size: 1.3em;
margin: 20px 0 0 -10px
}

.rssimporttwo {
margin-left: 10px
}

23 Kommentare und 17 Trackbacks zu „WP - Performance meiner Startseite“

  1. 1
    Pingback von WP - Performance meiner Startseite - bueltge.de [by:ltge.de]
  2. 2
    Pingback von WP-RSS-ImportTwo
  3. 3
    Pingback von tunsinn | tun was sinn macht » Blog Archive » Plugins used on my Site
  4. 4
    Pingback von WP - RSS Import (Plugin) - bueltge.de [by:ltge.de]
  5. 5
    Pingback von WP-RSS-ImportTwo - tunsinn - tun was sinn macht
  6. 6
    Pingback von WP - RSSImportTwo (Plugin) - bueltge.de [by:ltge.de]
  7. 7
    Kommentar von Fabian K.

    Hey Frank,

    irgendwas scheint im ersten teil von:

    get_var(“SELECT COUNT(ID) FROM
    $wpdb->posts WHERE post_status = ‘publish’“);
    return $totalposts;
    }

    // Get Total Comments
    function get_totalcomments() {
    global $wpdb;
    $totalcomments = $wpdb->get_var(“SELECT COUNT(comment_ID) FROM
    $wpdb->comments WHERE comment_approved = ‘1?“);
    return $totalcomments;
    }
    ?>

    nicht zu stimmen..

    Will ich die Funtkion nutzen, zeigt er mir irgend einen MySQL Fehler an...

  8. 8
    Kommentar von Frank Bültge

    Hallo Fabian,
    achte bitte darauf, dass die Hochkommas und Anführungszeichen richtig sind. Die werden durch WP bei mir verändert. Ersetze alle nochmal händisch.
    Der Code selbst stimmt, denn er läuft bei mir auf zwei Blogs und ich nutze ihn auch in einigen Plugins.
    LG Frank

  9. 9
    Pingback von Keine Leistungsbremse: “Recent Comments” für Wordpress (gunnART - Grafik, Layout, Konzeption)
  10. 10
    Pingback von Squirrel Tao » Squirrel Tao Redesign
  11. 11
    Pingback von WP - RSS Import (Plugin) | bueltge.de [by:ltge.de]
  12. 12
    Pingback von WordPress Plugin Update für WordPress 2.1 | bueltge.de [by:ltge.de]
  13. 13
    Kommentar von Louis

    Hi,

    I tried your pluggin and it works perectly for the rss... But a strange bug takes place when someone tries to write a message. It shows "Warning: Cannot modify header information - headers already sent by (output started at /home/uhecnet0/public_html/b/wp-content/plugins/rssimporttwo.php:1) in /home/uhecnet0/public_html/b/wp-includes/pluggable.php on line 275"

    Also, there is this strange "" thing at the upper left of my page.

    Any idea how to solve that?

    Sorry, I don't speak Deutsch...

  14. 14
    Kommentar von Frank Bültge

    Hello Louis,
    this is a bug in the script with utf-coding. I have repair the bug and i hope, the plugin works correctly.
    with best regards
    Frank

  15. 15
    Kommentar von criscom

    Das Plugin funktioniert exzellent. Einzige Frage, die bleibt: wie kann ich das Komma ',' am Ende des Feeds löschen?
    THX
    Chris
    Site: http://www.einstern.at -- Plugin läuft unter der Überschrift Subscription

  16. 16
    Kommentar von Frank Bültge

    Für deine Anwendung ist RSSImport besser geeignet. Das Komma kann ich nicht nachvollziehen, hast du den Code des Plugins geändert und da vielleicht ein Komma zu viel drin?

  17. 17
    Kommentar von criscom

    Hi Frank, danke für den Hinweis. Hab RSSImport installiert und das funktioniert perfekt. THX C

  18. 18
    Pingback von WordPress Szene Blog » Blog Archive » WP-RSSImportTwo
  19. 19
    Pingback von WP - RSS Import (Plugin) | bueltge.de [by:ltge.de]
  20. 20
    Pingback von WP - RSSImportTwo (Plugin) | bueltge.de [by:ltge.de]
  21. 21
    Pingback von SCOL - Colecciones multimedia. | Maguila v2.0
  22. 22
    Kommentar von Joachim

    Frank,

    neues Seitenlayout sieht sehr gut aus!!

  23. 23
    Pingback von WordPress 2.3 compatiblity Plugins | Dreamer's Blog
  24. 24
    Kommentar von Janice

    Dankeschön! Jetzt kann auch ich meine Comments zählen!

  25. 25
    Pingback von WordPress 2.3 Q to T compatible Plugins | Download Things
  26. 26
    Pingback von Viel Geld verdienen mit einem RSS NEWS “Shop” - Affiliate Marketing Blog
  27. 27
    Kommentar von Thomas

    Hallo Frank,

    erstmal vielen Dank für das tolle Plugin! (RSSImportTwo)
    Ich habe allerdings 2 kleine "Probleme" damit...
    1. Ich nutze das Plugin um Beiträge und Kommentare aus dem Fanblog auf der Vereinsseite anzuzeigen. Das funktioniert soweit - zumindest bei den Beiträgen. Bei den Kommentaren fehlen immer die 3-4 Aktuellsten?!
    2. Im Umkehrschluss will ich Beiträge (Auszugsweise) von der Vereinsseite auf der Fanseite anzeigen. Funktionierte mit Feedburner sehr gut, mit RSSImport leider gar nicht. An der Adresse kann es nicht liegen, da ich den Feed anderswo lesen kann.

    Irgendeine Idee?! :)

    Besten Gruß
    Thomas

  28. 28
    Kommentar von Frank Bültge

    @Thomas: der erste Fall könnte am Cache liegen. Wenn die Inhalte drin sind im Feed, dann kann man sie auch auslesen. In WP wird der Feed aber gecacht und den Cache kann man def. bzw. deaktivieren. Dazu gibt es eine Konstante im Plugin.
    Für den zweiten Fall ist das sehr schwer zu sagen, geht nur, wenn man den Feed kennt. Entscheidend ist, dass der Feed valide ist und keinerlei Fehler hat. Alternativ kann man ihn umleiten über Yahoo Pipes z.b. und dann wieder einleiten, weil Pipes in der Regel korrigiert und einen sauberen Feed zurück gibt.

  29. 29
    Kommentar von Thomas

    Danke Frank!
    Ein Problem ist gelöst. Ich habe den Feed über eine yahoo-Pipe erstellt und abgerufen - es funktioniert, obwohl der ursprüngliche Feed laut Validator valide ist... Na ja. Verstehen tu ich das nicht... :(

    Nun zum anderen... Ich hab mir mal den Code des Plugins angeschaut und folgende Zeile gefunden.
    //define('MAGPIE_CACHE_ON', false); // Cache off
    Wenn ich die // vorn entferne dann bekomm ich einen Fatal Error ausgeworfen. Lieg ich da falsch, oder was muss ich beachten?

    Danke schon mal. :)

  30. 30
    Kommentar von Frank Bültge

    @Thomas: hast du auch die Zeit des Cache auskommentiert und welchen Error bekommst du?

  31. 31
    Kommentar von Thomas

    @Frank
    die Zeit war nicht "kommentiert"... Also ohne die // davor.
    Und warum auch immer, bekomme ich heute (jetzt) keinen Fehler angezeigt, wenn ich den Cache auskommentiere.

    Trotzdem danke für die Tipps!
    Mach weiter so! :) Die Plugins und Erklärungen sind super!

    Thomas

  32. 32
    Kommentar von Thomas

    Achso... Ein Nachtrag noch. Alles funktioniert jetzt Bestens! :)

    Thomas

  33. 33
    Kommentar von Nimue

    Hallo Frank,

    kann man das Plugin auch evtl etwas zweckentfremden? Ich habe eine WP-Installation auf einem USB-Stick als Tagebuch und würde gern meine Online-Artikel damit importieren.
    Sozusagen das ofizielle Tagebuch und das geheime ;-) mixen.

    Meinst du,das wäre möglich?

  34. 34
    Kommentar von Frank Bültge

    Du willst die Artikel aus dem Online-Blog in dein Lokales Blog holen? Das geht, wenn du online bist zumindest, weil der Feed nur dann gelesen werden kann, wenn dein Lokales Blog Zugang zum Netz hat. Dazu musst du nix verändern, nur das Plugin oder die Funktion in Wp nutzen und den Feed einlesen.

  35. 35
    Kommentar von Nimue

    Aber das muß ich ja dann jedesmal händisch machen, oder? Automatisch geht das ncht? so wie zb. bei tumblr?

  36. 36
    Kommentar von Frank Bültge

    Doch, wenn du den Feed via Plugin rein holst, dann wird das immer getan, sobald man die Seite aufruft, die die Ausgabe hat.

  37. 37
    Kommentar von Nimue

    OK, jetzt oute ich mich als platinblondie:
    So das sich die Posts geschmeidig einfügen, als hätte ich sie im lokalen Blog geschrieben, geht wohl nicht, oder? Und meine 3 Tumblelogs kann ich auf diese Weise auch nicht einfügen? Das es ebenfalls so aussieht, als wären sie im lokalen Blog geschrieben worden?
    zb: Alle Beiträge von http://yadda-yadda-yadda.tumblr.com/ in der Kategorie Ramblings, alle Beiträge von http://stylefyle.tumblr.com/ in der Kategorie stylfyle?

    Ich weiß, ich klinge nervig und wahrscheinlich bin ich das auch (sogar ziemlich sicher), ich kann nur nicht anders :-( , Perfektionismus ist ein Fluch.

    Frohe Ostern!

  38. 38
    Kommentar von Gerhard Lehnhoff

    Datum im RSS-Feed

    Hallo, wie bekomme ich denn das Datum des Feeds im Deutschen Format?

    Danke - gl

  39. 39
    Kommentar von benny

    hi

    bei mir funktionieren die parameter nicht.würde gerne description 200 zeichen,blank und nofollow nutzen,

    habs so eingebunden:

    aber irgendwie zeigt er nur die 5 stück als link an...
    woran kann das liegen?

    Vielen Dank

    Schöne Grüße

  40. 40
    Kommentar von Frank Bültge

    @benny: nutze bitte das Plugin RSSImport, dass kann nun alles und wird von mir gepflegt.

Kommentar schreiben

Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.

Kommentar-Hilfe

händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.