WP Template Name auslesen?

  • Hallo,

    ich möchte gern in meinem Template den Namen des Seitentemplates auslesen welches gerade genutzt wird?

    Hintergund: Ich habe unter themes/meintheme ein weiteres Template für eine Seite angelegt, dieses will ich jetzt durch eine IfAbfrage in meinem eigentlichen Theme mit einem speziellen Header versehen.

    Danke für die Hilfe &
    Viele Grüße.

    • 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

  • Hallo,

    ich möchte gern in meinem Template den Namen des Seitentemplates auslesen welches gerade genutzt wird?

    PHP
    <?php 
        $theme_data = get_theme_data(get_bloginfo(stylesheet_url)); 
        echo "Name des Themes: ".$theme_data['Name']; 
    ?>

    Bego

  • Danke dir, dass sieht schonmal gut aus.
    Leider spuckt mir WP nur einen leeren Array aus:

    Die URL zum Stylesheet die über get_bloginfo geholt stimmt.

    Hast du eine Idee?

  • Danke dir, dass sieht schonmal gut aus.
    Leider spuckt mir WP nur einen leeren Array aus:
    ... Hast du eine Idee?

    Hast Du denn die entsprechenden Angaben in Deinem Theme in der style.css gemacht?

    Im neuen TwentyTen-Theme steht z.B.

    Code
    /* 
    Theme Name: Twenty Ten 
    Theme URI: http://wordpress.org/ 
    Description: The 2010 default theme for WordPress. 
    Author: the WordPress team 
    Version: 1.0 
    Tags: black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style 
    */

    Bego

  • Code
    /*
    Template Name: Extratpl
    Theme Name: mytheme
    Theme URI: http://www.example.com/ 
    Description: 
    Author: DasBinIch
    Version: 1.0
    */

    Ich habe bei mir jetzt folgendes eingefügt, es kommt aber immer noch der Default Array mit den Anonymus Daten vorn an.

    Das Template ist im Admin aber natürlich verfügbar, also die Kommentarsynthax scheint zu funktionieren.

  • Wie sagt man das, der Drops ist gelutscht ich hatte die Angaben nicht in der style.css, jetzt kommen die Daten vorn an.

    Das Problem: Ich brauche die Daten aus meinen eigenen Seitentemplate :) Er holt mir jetzt nur die Infos aus der Css, die bei allen Setentemplates immer gleich sind.


  • Das Problem: Ich brauche die Daten aus meinen eigenen Seitentemplate :) Er holt mir jetzt nur die Infos aus der Css, die bei allen Setentemplates immer gleich sind.

    Hm, auf Anhieb habe ich keine WP-Funktion gefunden (vielleicht hast Du mehr Glück: http://codex.wordpress.org/Function_Reference ). Aber wie wäre es denn, wenn Du in Deinen Seitentemplates einer eigenen PHP-Variable einen Wert zuweist und den dann im nächsten Schritt ausliest?

    Nur so eine Idee ...

    Bego

  • Ich habe auch nichts gefunden womit ich das Problem lösen kann.

    Wenn ich Variablen in meinem Seitentemplate setze kommen die nicht im Footer oder Header an weil dieser per getFooter() geladen wird.

    Ich bin schon kurz davor eine globale Variable zu missbrauchen :)

    Ich werde noch ein paar Tage basteln und mich dabei in die Wordpress Logik einlesen, vermutlich finde ich dann auch eine bessere Lösung.

    Danke auf jedenfall für deine Hilfe und bis die Tage :)

  • Ich bin schon kurz davor eine globale Variable zu missbrauchen :)

    Ja, so hatte ich das auch gedacht. Nehmen wir mal an, Du hast eine Vorlage [FONT=Courier New]meinevorlage.php[/FONT] und eine Vorlage [FONT=Courier New]auchmeinevorlage.php[/FONT]

    Vor den Aufruf get_footer() setzt Du in die Vorlage [FONT=Courier New]meinevorlage.php [/FONT]folgendes:

    PHP
    <?php     
    $meinevar = "meinevorlage.php";
    
    
    function test () { 
            global $meinevar; 
            echo $meinevar;
        };
    ?>

    (bzw. $meinevar = "auchmeinevorlage.php" in der anderen Vorlage)

    und in den Footer

    PHP
    <?php test() ; ?>

    Dann wird Dir im Footer angezeigt, welche der beiden Templates gerade geladen ist.

    Das ist aber wie gesagt sehr selbst gestrickt. Irgendwie kann man sicherlich auch den Namen des Seitentemplates auslesen. Zumindest muss er laut Codex in dieser Form angegeben werden:

    PHP
    <?php
    /*
    Template Name: Snarfer
    */
    ?>

    Vielleicht kann uns sonst jemand auf die Sprünge helfen?

    Bego

Jetzt mitmachen!

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