मैं डैशबोर्ड में 'पृष्ठ संपादित करें' पृष्ठ पर उपयोग किए गए टेम्पलेट के फ़ाइल नाम/पथ को पुनर्प्राप्त करने का प्रयास कर रहा हूं।यह पता लगाना कि कौन सा वर्डप्रेस टेम्पलेट व्यवस्थापक पृष्ठ से किसी पृष्ठ के लिए उपयोग किया जाता है
wp-includes/template-loader.php
(source) के समान ही सामने वाला है: यह पता लगाने के लिए कि कौन सा टेम्पलेट प्रस्तुत करना है।
दुर्भाग्यवश, is_front_page()
जैसे अभिव्यक्ति - जो Wordpress 'template-loader.php
यह पता लगाने के लिए उपयोग करता है कि इसे get_front_page_template()
का उपयोग करना चाहिए - व्यवस्थापक पृष्ठ पर सही तरीके से काम न करें। जिसकी अपेक्षा की जा सकती है क्योंकि वे अभिव्यक्ति वैश्विक $ wp_query ऑब्जेक्ट का उपयोग करती है, न कि वर्तमान क्वेरी।
क्या मैं अब तक की कोशिश की है:
एक पोस्ट पाश व्यवस्थापक पृष्ठ के अंदर
$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; ?>
प्रदर्शित करता चल रहा है:
होम
पहले पन्ने है: झूठा
का उपयोग get_post_meta
<?= get_post_meta(get_the_ID(), '_wp_page_template', true); ?>
प्रदर्शित करता है:
डिफ़ॉल्ट
... जो घर और page.php पर सामने page.php के लिए ही होगा एक और डिफ़ॉल्ट पृष्ठ पर, यह मेरी मदद नहीं करता है।
कम
में क्या मैं पाने के लिए कोशिश कर रहा हूँ front-page.php
जब मैं संपादन कर रहा हूँ मेरी 'होम' पेज है। या custom-template.php
जब मैं चयनित कस्टम टेम्पलेट के साथ कुछ पेज संपादित कर रहा हूं। या about-page.php
जब मैं 'बारे में' नामक एक पृष्ठ संपादित कर रहा हूं। सही फ़ाइल नाम या पथ कैसे प्राप्त करें?
मुझे सामने वाले अंत में टेम्पलेट फ़ाइल नाम युक्त मेटा टैग जोड़कर और सही फ़ाइल नाम प्राप्त करने के लिए बैकएंड से 'get_meta_tags' का उपयोग करके इस समस्या का समाधान मिला है। हालांकि यह काम करता है, मैं सोच रहा हूं कि क्या एक और अधिक सुरुचिपूर्ण समाधान है। अब एक बक्षीस शुरू कर रहा है। – kapser
आप ऊपर कोड प्रयास कैसे चला रहे हैं? एक हुक के माध्यम से? – Steve
संक्षेप में: 'wp_head' हुक का उपयोग करके मेटा टैग डाला गया है। [इस एक] के समान कार्य का उपयोग करना (https://github.com/WordPress/WordPress/blob/master/wp-includes/template-loader.php#L44) सही टेम्पलेट पथ मेटा टैग में लोड किया गया है। फिर, कर्ल या get_meta_tags का उपयोग करके (दोनों ने कोशिश की, दोनों काम किया), मैंने बैकएंड से मेटा टैग पढ़ा। यह काम करता है, लेकिन यह एक गंदे समाधान की तरह लगता है। – kapser