मैं एक प्लगइन विकसित कर रहा हूं जो एक कस्टम पोस्ट प्रकार का उपयोग नहीं करता है, लेकिन अलग-अलग डेटाबेस टेबल। यह एक प्लगइन है जो लिंक के साथ पाठ्यक्रमों की एक सूची प्रदर्शित करता है जो अलग-अलग पाठ्यक्रम के विवरण पृष्ठों की ओर जाता है, जहां उपयोगकर्ता तब एक कोर्स के लिए सदस्यता ले सकते हैं।
वर्तमान स्थिति में, मैं कस्टम पेज टेम्प्लेट (पृष्ठ- courses.php) के साथ पृष्ठ में प्लग इन डेटा प्राप्त करने के लिए एक शोर्ट का उपयोग कर रहा हूं।
अब मैं the_title()
गतिशील रूप से उस पृष्ठ के अनुसार बदलना चाहता हूं , जो प्लगइन दिखाता है (पाठ्यक्रमों की सूची, प्रपत्रों के साथ पाठ्यक्रम विवरण पृष्ठ, फॉर्म जमा सफलता पृष्ठ)। लेकिन जब भी मैं निम्नलिखित फ़िल्टर के साथ करता हूं, पाद लेख के अन्य पृष्ठों के लिंक भी बदल जाते हैं:
<?php
add_filter('the_title', 'custom_page_title');
function custom_page_title() {
return 'Custom Title';
}
संपादित करें
Footer.php में मेरे पास एक फ़ंक्शन है जिसमें पाद लिंक शामिल हैं wp_nav_menu()
ताकि मैं उन्हें उपस्थिति> मेनू में परिभाषित कर सकूं। लेकिन ऊपर दिए गए फिल्टर के साथ, पाद लेख के सभी लिंक भी 'कस्टम शीर्षक' में बदल जाते हैं। लेकिन मैं केवल पृष्ठ के शीर्षक को बदलना चाहता हूं, पाद लेख में मेनू लिंक को प्रभावित नहीं कर रहा हूं।
सशर्त टैग जोड़ने की कोशिश कर रहा है in_the_loop()
पाद लेख लिंक अभी भी प्रभावित हैं, हालांकि वे लूप में नहीं हैं।
<?php
add_action( 'loop_start', 'set_custom_title' );
function set_custom_title() {
if ( in_the_loop() ) {
add_filter( 'the_title', 'custom_page_title' );
}
}
function custom_page_title() {
return 'Custom Title';
}
यह इस प्रश्न के समान है: नौसेना में the_title समस्या को फ़िल्टर करें , बस प्रभावित लिंक पाद लेख में हैं और in_the_loop()
काम नहीं करता है।
the_title()
केवल पाद लेख के लिंक को प्रभावित नहीं करते हुए वर्तमान पृष्ठ के शीर्षक को प्रभावित करते हुए मैं कैसे बदल सकता हूं ?
2 संपादित करें - समाधान
इसलिए मैंने आखिरकार इसे काम कर लिया:
<?php
add_action( 'loop_start', 'set_custom_title' );
function set_custom_title() {
add_filter( 'the_title', 'wpse83525_filter_the_title', 10, 2 );
}
function wpse83525_filter_the_title( $title, $id ) {
if ( 'page-listcourses.php' == get_post_meta( $id, '_wp_page_template', true ) ) {
return 'Custom Title';
}
return $title;
}
फ़ाइल पृष्ठ-listcourses.php एक कस्टम पोस्ट टेम्प्लेट है जिसे मैंने 'पाठ्यक्रम' नाम के स्थिर पृष्ठ को सौंपा है।
मुझे लगता है कि इससे पहले यह काम नहीं किया था क्योंकि कस्टम पेज का नाम और कस्टम पोस्ट टेम्पलेट का नाम एक ही था।
in_the_loop()
true
जब भी the_post()
निकाल दिया जाता है तब सेट किया जाता है। बहुत गहराई से खोदने के बिना, और यह जानते हुए कि नौसेना मेनू स्वयं लूप हैं , मैं अनुमान लगा रहा हूं कि रास्ते में कहीं भी, wp_nav_menu()
एक लूप को इंस्टेंट करता है, जिससे in_the_loop()
वापसी होती है true
।