Ich versuche, den Dateinamen/Pfad der Vorlage abzurufen, die auf der Seite „Seite bearbeiten“ im Dashboard verwendet wird.
Ähnlich was wp-includes/template-loader.php
(Quelle) am Frontend: Herausfinden, welche Vorlage gerendert werden soll.
Leider Ausdrücke wie is_front_page()
– welche WordPress’ template-loader.php
verwendet, um herauszufinden, ob es verwendet werden sollte get_front_page_template()
– funktionieren auf der Admin-Seite nicht richtig. Was zu erwarten ist, da diese Ausdrücke das globale $wp_query-Objekt und nicht die aktuelle Abfrage verwenden.
Was ich bisher versucht habe:
Ausführen einer Post-Schleife innerhalb der Admin-Seite
$args = array(
'p' => get_the_ID(),
'post_type' => 'any'
);
$query = new \WP_Query($args);
if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>
<?= the_title(); ?><br>
Is front page: <?= is_front_page() ? 'true' : 'false' ?>
<?php endwhile; endif; ?>
Anzeigen:
Heim
Ist Titelseite: falsch
Verwenden von get_post_meta
<?= get_post_meta(get_the_ID(), '_wp_page_template', true); ?>
Anzeigen:
Ursprünglich
… was für front-page.php auf der Startseite und page.php auf einer anderen Standardseite gleich wäre, also hilft mir das nicht weiter.
Zusamenfassend
Was ich versuche zu bekommen ist front-page.php
wenn ich meine ‘Home’-Seite bearbeite. Oder custom-template.php
wenn ich eine Seite mit der ausgewählten benutzerdefinierten Vorlage bearbeite. Oder about-page.php
wenn ich eine Seite mit dem Namen „Info“ bearbeite. Wie bekomme ich den richtigen Dateinamen oder Pfad?
Ich habe eine Lösung für dieses Problem gefunden, indem ich ein Meta-Tag hinzugefügt habe, das den Dateinamen der Vorlage am Frontend enthält, und PHPs verwendet habe
get_meta_tags
aus dem Backend, um den richtigen Dateinamen zu erhalten. Obwohl dies funktioniert, frage ich mich, ob es eine elegantere Lösung gibt. Starte jetzt ein Kopfgeld.– Kapoko
5. September 2017 um 8:28 Uhr
Wie führen Sie den obigen Codeversuch aus? Über einen Haken?
– Steve
5. September 2017 um 14:27 Uhr
Kurz gesagt: Das Meta-Tag wird über die eingefügt
wp_head
Haken. Verwenden Sie eine ähnliche Funktion wie Dieses hier der korrekte Vorlagenpfad wird in das Meta-Tag geladen. Dann habe ich mit curl oder get_meta_tags (beide ausprobiert, beide funktionierten) dieses Meta-Tag aus dem Backend gelesen. Es funktioniert, aber es fühlt sich an wie eine schmutzige Lösung.– Kapoko
5. September 2017 um 14:42 Uhr
Eine Woche später: Danke für die Antworten, auch wenn ich keine bessere Lösung für mein Problem gefunden habe. Ich kann immer noch nicht die ECHTE Vorlagendatei abrufen, die geladen wird, wenn ich auf der Admin-Seite bin, es sei denn, ich verwende den Curl-Trick, um die Seite auf dem im obigen Kommentar beschriebenen Front-End zu laden, das ich vorerst weiter verwenden werde .
– Kapoko
12. September 2017 um 12:03 Uhr