टैक्सोनॉमी शब्द के साथ एक कस्टम-पोस्ट-प्रकार के पर्मलिंक को फिर से लिखना?


16

मैं wr_eventsअपने custom_taxonomy शब्दों में से एक custom_post_type के साथ अपने url को फिर से लिखने की कोशिश कर रहा हूंevent_type

add_action('init', 'wr_events');

function wr_events() {

     register_taxonomy(
        'event_type',
        'wr_event',
        array(
            'label' => 'Types',
            'singular_label' => 'Typ',
            'hierarchical' => true,
            'query_var' => true,
            'rewrite' => array('slug' => 'events'),
        )
    );

    $labels = array(
        'name' => _x('Events', 'post type general name'),
        'singular_name' => _x('Event', 'post type singular name')
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'query_var' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'menu_position' => null,
        'supports' => array('title','editor','thumbnail', 'excerpt'),
        'rewrite' => array(
            //'slug' => 'event',
            'slug' => 'events/%event%',
            'with_front' => false
        ),
        'has_archive' => 'events'
    ); 

    register_post_type( 'wr_event' , $args );
    flush_rewrite_rules();
}

add_action('save_post', 'save_details');

add_filter('post_type_link', 'events_permalink_structure', 10, 4);
function events_permalink_structure($post_link, $post, $leavename, $sample)
{
    if ( false !== strpos( $post_link, '%event%' ) ) {
        $event_type_term = get_the_terms( $post->ID, 'event_type' );
        $post_link = str_replace( '%event%', array_pop( $event_type_term )->slug, $post_link );
    }
    return $post_link;
}

तो मेरे मामले में मेरी वर्गीकरण शर्तें "कार्यशालाएं" या "व्याख्यान" आदि होंगी url/events/lecturesया url/events/workshopsइस "श्रेणी" से संबंधित मेरे सभी पदों को सूचीबद्ध करेगी , url/eventsजो मेरी सभी घटनाओं के लिए एक कस्टम संग्रह दिखाती है। -> यह वही है जो मैं चाहता हूं लेकिन केवल काम नहीं करने वाली चीज कस्टम-पोस्ट के लिए पूर्ण url है ...

url/events/lectures/post-name - एक 404 फेंकता है!

कुछ पता है कि ऐसा क्यों हो रहा है? मेरा events_permalink_structure()कार्य सही ढंग से काम करता प्रतीत होता है क्योंकि यह मेरे पर्मलिंक्स को मेरे इच्छित तरीके से हटा देता है।

मैंने "रिवर्ट एनालाइज़र" प्लगइन स्थापित किया है और यह मुझे दिखाता है "रेगेक्स खाली है" wr_event

मैंने भी Permalink सेटिंग्स पर जाकर Rewrite Rules को फ्लश करने की कोशिश की है। हालांकि कोई असर नहीं हुआ।

जवाबों:


10

अपने सभी% घटना% को% event_type% में बदलें। मुझे उम्मीद है कि आपके लिए काम करता है।


बहुत बहुत धन्यवाद! बहुत बढ़िया! नहीं मिलता है, लेकिन यह काम करता है :)
mathiregister

2
@mathiregister - ऐसा इसलिए है क्योंकि WP स्वचालित रूप से टैग% इवेंट% को नहीं समझता है, लेकिन यह समझता है कि% event_type% आपके ईवेंट प्रकार वर्गीकरण के अनुरूप है।
स्टीफन हैरिस

अब मेरे पास स्लग के साथ कस्टम पोस्ट टाइप है /catalog/जो सभी पोस्ट को /katalog/whatever/प्रदर्शित करता है, जो कुछ भी स्लग के साथ कस्टम टैक्सोनॉमी में पोस्ट प्रदर्शित करता है, और /katalog/whatever/mypostएकल पोस्ट को प्रदर्शित करता है जो कि टैक्सोनॉमी से संबंधित है। %event%कोड के बजाय अपने कस्टम टैक्सोनॉमी नाम के ऊपर कोड के बजाय डालें%%
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.