ऐसा लगता है कि $ पोस्ट केवल निश्चित समय पर निष्पादित करने के लिए उपलब्ध है। मेरे पास "init" हुक है जिसे $ पोस्ट- ID का उपयोग करके डेटाबेस से कुछ डेटा खींचने की आवश्यकता है।
अब तक मेरा एकमात्र काम The_content पर एक और फिल्टर जोड़ने का रहा है, जो मुझे आवश्यक जानकारी प्राप्त करने के लिए $ पोस्ट का उपयोग करता है। दुर्भाग्य से, यह स्क्रीन पर वापसी मूल्य को भी ग्रहण करता है, और वास्तव में इसे उस फ़ंक्शन पर वापस करने में विफल रहता है जिसे मूल रूप से फ़िल्टर कहा जाता है।
यहां वह कोड है जो मुझे आवश्यक डेटा निकालता है, लेकिन प्रतिध्वनित होता है और मूल्य वापस करने में विफल रहता है:
add_filter('the_content', 'get_keyword');
function get_keyword()
{
global $post;
$keyword = get_post_meta( $post->ID, '_wpg_def_keyword', true );
return $keyword;
}
क्या किसी को कोई सुझाव है कि मुझे क्या चाहिए और इसे बाद में प्लगइन में उपयोग करने के लिए कॉलिंग फ़ंक्शन को कैसे पास करना है?
संपादित करें: संभवतः इसे और अधिक स्पष्ट करने के लिए, मेरे पास init पर चलने वाला एक फ़िल्टर है, जिसे DB से वर्तमान पोस्ट पर जानकारी प्राप्त करने में सक्षम होने की आवश्यकता है। ऐसा करने के लिए, इसे $ post-> ID तक पहुंच की आवश्यकता होती है। लेकिन यह init के भीतर संभव नहीं है, इसलिए मुझे उस परिणाम की आवश्यकता कैसे हो सकती है?
धन्यवाद,
जोनाथन
हल किया:
इस तरह से url_to_postid का उपयोग करने के लिए बस जवाब दिया गया था:
$keyword = get_post_meta(
url_to_postid( "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] ),
'_wpg_def_keyword',
true
);
Init से भी पूरी तरह से काम करता है।
init
भीglobal $post;
गुंजाइश के लिए बहुत जल्दी है । हो सकता है कि यदि आप वर्णन करते हैं कि आप जो पूरा करने की कोशिश कर रहे हैं वह बेहतर मदद करेगा।