कस्टम पोस्ट प्रकार के URI को फिर से कैसे लिखें?


16

जिस साइट पर मैं काम कर रहा हूं वह निम्नलिखित "सुंदर" पर्मलिंक संरचना का उपयोग करती है:

http://example.com/blog/my-special-post

लेकिन एक कस्टम पोस्ट प्रकार के लिए मेरे ग्राहक "सुंदर" स्लग होने से बचना चाहते हैं:

http://example.com/product/142

कस्टम पोस्ट प्रकार के लिए स्लग के स्थान पर पोस्ट आईडी का उपयोग कैसे किया जा सकता है?

मेरा मानना ​​है कि यह WP_Rewrite का उपयोग करके संभव हो सकता है, लेकिन मुझे नहीं पता कि कहां से शुरू करें।

जवाबों:


33

यह वह है जो मैं पोस्ट आईडी के साथ कस्टम पोस्ट प्रकार URL को फिर से लिखने के लिए उपयोग करता हूं। आपको URL अनुरोधों का अनुवाद करने के लिए एक पुनर्लेखन नियम की आवश्यकता है, साथ ही post_type_linkकिसी भी कॉल के लिए सही URL वापस करने के लिए एक फ़िल्टर पर get_post_permalink():

add_filter('post_type_link', 'wpse33551_post_type_link', 1, 3);

function wpse33551_post_type_link( $link, $post = 0 ){
    if ( $post->post_type == 'product' ){
        return home_url( 'product/' . $post->ID );
    } else {
        return $link;
    }
}

add_action( 'init', 'wpse33551_rewrites_init' );

function wpse33551_rewrites_init(){
    add_rewrite_rule(
        'product/([0-9]+)?$',
        'index.php?post_type=product&p=$matches[1]',
        'top' );
}

हाय @milo यह मुझे पूरी तरह से काम करता है ... लेकिन मैं कुछ बदलाव चाहते हैं तो कृपया आप मुझे मार्गदर्शन कर सकते हैं
deemi-D-nadeem
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.