2015-06-07 7 views
7

मेरे पास एक वर्डप्रेस साइट है और मैं पोस्ट से ब्लॉक कोट्स को हटाना चाहता हूं और केवल नियमित टेक्स्ट डालना चाहता हूं। (पाठ में मौजूद किसी भी छवि को भी हटाना चाहते हैं, मुझे बस नियमित पाठ चाहिए)पोस्ट टेक्स्ट से ब्लॉक उद्धरण को हटा रहा है - वर्डप्रेस

यह कोड जो मैं चाहता हूं उसका OPPOSITE करता है - ब्लॉक उद्धरण और पोस्ट को बाहर ले जाता है। मैं इसे अन्य पाठ पोस्ट करना चाहता हूं, न कि ब्लॉक उद्धरण।

<?php 
     // get the content 
     $block = get_the_content(); 

     // check and retrieve blockquote 
     if(preg_match('~<blockquote>([\s\S]+?)</blockquote>~', $block, $matches)) 

     // output blockquote 
     echo $matches[1]; 
?> 

उत्तर

1

आपको एक सामग्री फ़िल्टर की आवश्यकता है। अपने functions.php फ़ाइल में निम्नलिखित जोड़ें

add_filter('the_content', 'rm_quotes_and_images'); 
function rm_quotes_and_images($content) 
{ 
    $content = preg_replace("~<blockquote>([\s\S]+?)</blockquote>~", "", $content); 
    $content = preg_replace("/<img[^>]+>/i", "", $content);   
    return $content; 
} 
+0

मुझे बहुत सारी टिप्पणियां मिल रही हैं कि preg_replace का उपयोग करना बुरा अभ्यास है और यह अनुकूल नहीं है – user3550879

+0

यह "इष्टतम" की आपकी परिभाषा पर निर्भर करता है। यदि आप ब्लॉक कोट्स और छवियों को स्थायी रूप से हटाना चाहते हैं तो आप उन्हें हटाने के लिए एक बार डेटाबेस क्वेरी चलाने से बेहतर हैं। लेकिन यदि आप पृष्ठ को आउटपुट करते समय उन्हें निकालने के लिए फ़िल्टर चाहते हैं तो उपरोक्त पोस्ट किए गए preg_replace समाधान को प्राप्त करने का शानदार तरीका है। – Nadav

0

प्रयास करें इस

add_filter('the_content', 'block_the_content_filter'); 
function block_the_content_filter($content) { 

$content = preg_replace("~<blockquote>([\s\S]+?)</blockquote>~", "", $content); 

return $content; 

} 
+0

जो कुछ भी नहीं देता है? – user3550879

0

बस अपने कोड से जोड़ें:

 add_filter('the_content', 'block_the_content_filter'); 
    function block_the_content_filter($content) { 

    $content = preg_replace("~<blockquote>([\s\S]+?)</blockquote>~", "", $content); 
$content = strip_tags($content, '<img>'); 

    return $content; 

    } 
:

$content = preg_replace("~<blockquote>([\s\S]+?)</blockquote>~", "", $content); 
$content = strip_tags($content, '<img>'); 

echo $content; 

रास्ता वाली हसन सईद है अपने function.php करने के लिए कोड निम्नलिखित जोड़ने के लिए

यह डिफ़ॉल्ट "the_conte को ओवरराइड करता है nt() "फ़ंक्शन में आपको पृष्ठ टेम्पलेट में केवल कॉल करने की आवश्यकता है:

the_content(); 
संबंधित मुद्दे