Performance-Problem: Theme-Details anzeigen

  • Hallo Leute!

    Ich bin gerade dabei, mir ein kleines Plugin zu schreiben, dass mir Details zum aktuell aktiven Theme in einer Seite/Beitrag ausgibt. Allerdings bemerke ich, dass die Performance um einiges in den Keller geht. Auch bei Seiten, die die Theme-Details gar nicht darstellen sollen. Könnt ihr euch meinen Code vielleicht einmal ansehen und mir evtl. Tips zur Performance-Steigerung geben:

    Schon mal vielen vielen Dank

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Die Methode get_theme_data liest Informationen aus dem Stylesheet des Themes aus. Das heißt, da muss PHP auf eine Datei zugreifen, was IMHO prinzipiell eine teure Operation ist.

    Dass das immer passiert und nicht nur bei Seiten, die die Details auch anzeigen, erklärt sich ganz leicht: Du hast einen Filter für "the_content" definiert. Der wird immer aufgerufen und versucht immer "[COLOR=#000000][COLOR=#cc0000][theme_details][/COLOR][/COLOR]" durch die Details zu ersetzen. Das heißt, die Funktion holt erst die Theme-Daten und versucht sie dann zu ersetzen. Besser wäre es hier, erst nachzuschauen, ob der Text den String "[COLOR=#000000][COLOR=#cc0000][theme_details][/COLOR][/COLOR]" enthält. Also einfach eine kleine if-Abfrage um die str_replace-Zeile drum herum.

  • Danke für Deine Antwort!

    Könntest Du vielleicht noch posten, wie Du die if-Abfrage machen würdest oder wie Du es an Deiner Stelle machen würdest.

    Das ist nämlich mein erster Gehversuch mit WP-Plugins und PHP. Bin da noch nicht wirklich der Fuchs!

    Vielen Dank schonmal!

  • Ich würde mal sagen, so in etwa sollte es aussehen:

    Code
    [COLOR=#000000][COLOR=#006600]function [/COLOR][COLOR=#0000cc]current_theme[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc]$content[/COLOR][COLOR=#006600]) {
      if (strpos($content, '[theme_details]') !== false) {
        [/COLOR][COLOR=#0000cc]$content [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#0000cc]str_replace[/COLOR][COLOR=#006600]([/COLOR][COLOR=#cc0000]"[theme_details]"[/COLOR][COLOR=#006600], [/COLOR][COLOR=#0000cc]display_theme[/COLOR][COLOR=#006600](), [/COLOR][COLOR=#0000cc]$content[/COLOR][COLOR=#006600]);
      }
      return [/COLOR][COLOR=#0000cc]$content[/COLOR][COLOR=#006600];
    }[/COLOR][/COLOR]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!