Ich versuche, den Dateinamen/Pfad der Vorlage auf der Seite 'Seite bearbeiten' im Dashboard zu erhalten.Herauszufinden, welche Wordpress Vorlage für eine Seite von Admin-Seite verwendet wird
Ähnlich wie bei wp-includes/template-loader.php
(source) auf dem Front-End: herauszufinden, welche Vorlage zu rendern.
Leider Ausdrücke wie is_front_page()
- die Wordpress 'template-loader.php
verwendet, um herauszufinden, ob es get_front_page_template()
verwenden sollte - funktionieren nicht ordnungsgemäß auf der Verwaltungsseite. Was zu erwarten ist, weil diese Ausdrücke das globale $ wp_query-Objekt und nicht die aktuelle Abfrage verwenden.
Was ich bisher versucht:
einen Beitrag Schleife in der Admin-Seite Laufen
$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; ?>
Displays:
Startseite
Ist Titelseite: falsch
Mit get_post_meta
<?= get_post_meta(get_the_ID(), '_wp_page_template', true); ?>
Displays:
Standard
..., die gleich für Front-page.php auf Start und page.php wäre auf einer anderen Standardseite, also hilft mir das nicht weiter.
Kurz
Was ich versuche ist front-page.php
zu bekommen, wenn ich meine Seite ‚Home‘ zu bearbeiten. Oder custom-template.php
, wenn ich eine Seite mit der ausgewählten benutzerdefinierten Vorlage bearbeite. Oder about-page.php
, wenn ich eine Seite namens 'Über' bearbeite. Wie bekomme ich den richtigen Dateinamen oder Pfad?
Ich habe eine Lösung für dieses Problem gefunden, indem ich ein Meta-Tag mit dem Template-Dateinamen auf dem Front-End und mit dem 'get_meta_tags' von php aus dem Backend, um den richtigen Dateinamen zu erhalten. Obwohl das funktioniert, frage ich mich, ob es eine elegantere Lösung gibt. Ein Kopfgeld jetzt beginnen. – kapser
Wie läuft der obige Code-Versuch? Über einen Haken? – Steve
Kurz gesagt: Das Meta-Tag wird mit dem 'wp_head'-Hook eingefügt. Mit einer ähnlichen Funktion zu [diesem] (https://github.com/WordPress/WordPress/blob/master/wp-includes/template-loader.php#L44) wird der korrekte Template-Pfad in das Meta-Tag geladen. Dann, mit curl oder get_meta_tags (probierte sie beide, beide arbeiteten), las ich dieses Meta-Tag aus dem Backend. Es funktioniert, aber es fühlt sich an wie eine schmutzige Lösung. – kapser