वर्डप्रेस हुक / फिल्टर सामग्री से पहले या शीर्षक के बाद सम्मिलित करते हैं


29

अपने फ़ंक्शंस में पोस्ट सामग्री से पहले सामग्री डालने की कोशिश कर रहा हूं। एफपी - मुझे पता है कि नियमित रूप से डब्ल्यूपी हुक का उपयोग कैसे करना है, लेकिन अन्य क्षेत्रों में सम्मिलित करने के तरीके को अनिश्चित करें।

यह कोशिश की, लेकिन यह किसी अन्य पोस्ट प्रकार पर सामग्री को मारता है:

function property_slideshow( $content ) {
 if ( is_single() && 'property' == get_post_type() ) {
    $custom_content = '[portfolio_slideshow]';
    $custom_content .= $content;
    return $custom_content;
    } 
}
add_filter( 'the_content', 'property_slideshow' );

मैं यह सशर्त कैसे बनाऊं?

जवाबों:


39

बस the_contentफिल्टर का उपयोग करें , जैसे:

<?php
function theme_slug_filter_the_content( $content ) {
    $custom_content = 'YOUR CONTENT GOES HERE';
    $custom_content .= $content;
    return $custom_content;
}
add_filter( 'the_content', 'theme_slug_filter_the_content' );
?>

मूल रूप से, आप अपने कस्टम सामग्री के बाद पोस्ट सामग्री को जोड़ते हैं , फिर परिणाम लौटाते हैं।

संपादित करें

जैसा कि फ्रेंकी @ ब्यूल्टज अपनी टिप्पणी में बताते हैं, प्रक्रिया पद शीर्षक के लिए समान है; बस the_titleहुक में एक फिल्टर जोड़ें :

<?php
function theme_slug_filter_the_title( $title ) {
    $custom_title = 'YOUR CONTENT GOES HERE';
    $title .= $custom_title;
    return $title;
}
add_filter( 'the_title', 'theme_slug_filter_the_title' );
?>

ध्यान दें, इस स्थिति में, आप शीर्षक के बाद अपनी कस्टम सामग्री को जोड़ते हैं । (यह कोई फर्क नहीं पड़ता कि मैं क्या आप अपने प्रश्न में निर्दिष्ट के साथ गया था।)

संपादित करें 2

आपका उदाहरण कोड काम नहीं कर रहा है क्योंकि आप केवल तभी लौटते हैं $contentजब आपकी सशर्त मुलाकात होती है । आपको अपने सशर्त के $contentरूप में , बिना लाइसेंस के वापस लौटना होगा else। उदाहरण के लिए:

function property_slideshow( $content ) {
    if ( is_single() && 'property' == get_post_type() ) {
        $custom_content = '[portfolio_slideshow]';
        $custom_content .= $content;
        return $custom_content;
    } else {
        return $content;
    }
}
add_filter( 'the_content', 'property_slideshow' );

इस तरह, 'संपत्ति' के बाद के प्रकार के पदों के लिए, $contentवापस लौटाया गया, संयुक्त राष्ट्र-संशोधित है।


शीर्षक के बाद सामग्री जोड़ना भी संभव है; फ़िल्टर the_title सही हुक है।
bueltge

@ChipBennett सवाल - केवल एक कस्टम पोस्ट प्रकार के लिए तर्क के साथ यह कैसे करना है - मैंने इसे लपेटने की कोशिश की if ( is_single() && 'property' == get_post_type() ) {}लेकिन मेरे लिए यह काम नहीं किया
जेसन

@ChipBennett - मुझे यह अपने कस्टम पोस्ट प्रकार पर काम करने के लिए मिला, लेकिन सामग्री किसी अन्य पोस्ट प्रकार से गायब हो गई। ऊपर संपादित देखें।
जेसन

1
ऐसा इसलिए है क्योंकि आप $contentअपने कस्टम पोस्ट प्रकार के अलावा अन्य पोस्ट प्रकारों के लिए नहीं लौट रहे हैं । अद्यतन उत्तर देखें।
चिप बेनेट

बस एक नोट - आपको अन्य की आवश्यकता नहीं है {} ब्लॉक - बस फ़ॉलबैक वापसी। यदि शर्त पूरी हो जाती है, तो अगर () में रिटर्न आपको फंक्शन से बाहर ले जाता है, अगर आप इसे इफ़ (पिछले) कर देते हैं तो फ़ॉलबैक रिटर्न हिट हो जाएगा।
फाटकैट

0
function property_slideshow( $content ) {
    if ( is_singular( 'property' ) ) {
        $custom_content = do_shortcode( '[portfolio_slideshow]' );
        $custom_content .= $content;
        }
        return $custom_content;
}
add_filter( 'the_content', 'property_slideshow' );

is_singularसशर्त टैग चेकों एक विलक्षण पोस्ट प्रदर्शित की जा रही है, तो और $ post_types पैरामीटर जो इस मामले में संपत्ति है तय कर सकते हैं।

इसके अलावा, आप देखना चाह सकते हैं do_shortcode


यहाँ खेल के लिए देर हो रही है, लेकिन आप उस आवृत्ति में एक खाली चर लौटा रहे हैं जो is_singular ('गुण') गलत है। यदि आप वहां अपने तर्क को उल्टा करते हैं, और बस उस मामले में $ सामग्री वापस करते हैं, तो आप क्लीनर, अधिक पठनीय कोड के साथ समाप्त हो जाएंगे।
ट्रैविस वेस्टन

किसी अन्य ऑपरेटर को भी जोड़ सकते हैं या उपयोग कर सकते हैं। इसका एक त्वरित उदाहरण पूरी तरह से परीक्षण नहीं किया गया है जिसे बढ़ाया जा सकता है।
ब्रैड डाल्टन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.