Springe zum Inhalt

WordPress Themes: leere Live-Vorschau neuer Themen

Bei der Live-Vorschau von neuen Themen in WordPress kann es vorkommen, dass zwar die linke Sidebar für die Themeneinstellungen angezeigt wird, die eigentliche Anzeige aber leer bleibt.

Dieses Verhalten kann folgende Ursache haben:

  • das Plugin Widget Logic wird verwendet
  • im neuen Vorschau-Theme werden vorhandene Widgets angezeigt
  • in den Widget-Logic-Einstellungen dieser Widgets wird eine eigene Funktion aus der functions.php verwendet, welche aber im Vorschau-Theme nicht vorhanden ist

Dadurch tritt ein Fehler auf und die Vorschau wird nicht angezeigt, der Vorschaubereich bleibt leer.

Abhilfe schafft, vor dem Verwenden einer Funktion in Widget Logic zu testen, ob die Funktion überhaupt vorhanden ist. Für eine Funktion mit dem Namen "MeineFunktion" könnte man also folgendes in Widget Logic einfügen:

function_exists("MeineFunktion") && MeineFunktion()

MeineFunction wird dann nur aufgerufen, wenn sie auch wirklich existiert bzw. in der Themen-eigenen functions.php definiert worden ist.

Die Vorschau nicht aktiver bzw. noch nicht installierter Themen funktioniert anschließend wieder reibungslos.

7 Gedanken zu „WordPress Themes: leere Live-Vorschau neuer Themen

  1. Thomas

    Wo muss ich denn den Code einfügen? Unter jedem schon existierenden Widget ?

    Und was ist mit dem vorhandenen Code - z.b. ( is_single() || is_archive() || is_404() || is_search() ) and ! in_category( '5' )

    Danke für jede Hilfe.

    1. Jens Tautenhahn

      Bei den von dir genannten Funktionen handelt es sich um solche, die im WordPress-Core enthalten sind. Diese sind immer vorhanden und brauchen nicht extra auf Vorhandensein getestet werden. Problematisch sind nur die Funktionen, die in einer themeneigenen functions.php definiert worden sind und in einem Widget verwendet werden. Du brauchst also nur dort nach obigem Beispiel testen, wo deine eigene Functionen in Widget Logic verwendet werden.

  2. Thomas

    Sorry, habe mich unglücklich ausgedrückt.

    Die Funktion aus der functions.php ist

    function jetpackme_related_posts_headline( $headline ) {
    $headline = sprintf(
                '%s',
                esc_html( 'Ähnliche Beiträge' )
                       );
                return $headline;
    }
    
    add_filter( 'jetpack_relatedposts_filter_headline', 'jetpackme_related_posts_headline' );

    Der Code oben steht schon in dem Feld widget-logic von einem Seitenleistenwidget.

    1. Jens Tautenhahn

      Der Code oben hat eigentlich in einem Widget nichts zu suchen. In der functions.php ist er richtig. Wenn Du jetpackme_related_posts_headline("text") in einem Widget manuell aufrufst, dann würde ich vorher testen, ob jetpackme_related_posts_headline überhaupt vorhanden ist:

      function_exists("jetpackme_related_posts_headline") && jetpackme_related_posts_headline("text")

      Oder meinst Du etwas ganz anderes?

  3. Thomas

    das Jetpack Zeugs ist neben anderen individuellen Funktionen in der funtions.php.

    Der is_single() ... ist in einem Widget. (Andere Bedingungen in anderen Widgets.)

    Wie müsste ich nun die Codes im Widget kombinieren?

    1. Jens Tautenhahn

      Wie gesagt, alle Funktionen, die Du oben beschrieben hast sind WordPress-Core-Funktionen. Deren Vorhandensein braucht nicht getestet zu werden. Dein Beispiel oben lautet korrekt:
      ( is_single() || is_archive() || is_404() || is_search() ) && !in_category( '5' )
      Was meinst Du mit "kombinieren"? Tut mir Leid, ich verstehe das Problem (noch) nicht. Was willst Du überhaupt erreichen?

Kommentare sind geschlossen.