कस्टम पोस्ट प्रकार एकल पृष्ठ 404 त्रुटि देता है


17

मेरे पास एक कस्टम पोस्ट प्रकार है जिसे कहा जाता है slide। इसमें सामग्री और कुछ कस्टम फ़ील्ड हैं। मैं चाहता हूं कि जब उपयोगकर्ता स्लाइड सिंगल पेज लिंक पर क्लिक करे तो WPsingle.php थीम या single-slide.phpथीम दिखाएगा । मेरे पास समस्या यह है कि WP 404 त्रुटि फेंकता है, जब मैं एकल स्लाइड पेज देखना चाहता हूं।

यहाँ मेरा कोड है functions.php:

function create_slide_post_type() {
    $labels = array(
        'name'               => _x( 'اسلایدها', 'i2sa' ),
        'singular_name'      => _x( 'اسلاید', 'i2sa' ),
        'menu_name'          => _x( 'اسلایدها', 'i2sa' ),
        'name_admin_bar'     => _x( 'اسلاید', 'i2sa' ),
        'add_new'            => _x( 'افزودن', 'i2sa' ),
        'add_new_item'       => __( 'افزودن اسلاید جدید', 'i2sa' ),
        'new_item'           => __( 'اسلاید جدید', 'i2sa' ),
        'edit_item'          => __( 'ویرایش اسلاید', 'i2sa' ),
        'view_item'          => __( 'نمایش اسلاید', 'i2sa' ),
        'all_items'          => __( 'همه اسلایدها', 'i2sa' ),
        'search_items'       => __( 'جستجوی اسلایدها', 'i2sa' ),
        'parent_item_colon'  => __( 'اسلایدهای مادر:', 'i2sa' ),
        'not_found'          => __( 'اسلایدی پیدا نشد.', 'i2sa' ),
        'not_found_in_trash' => __( 'اسلایدی در زباله دان پیدا نشد.', 'i2sa' )
    );

    $args = array(
        'labels'             => $labels,
        'description'        => "اسلایدهای شرکت i2sa",
        'public'             => true,
        'exclude_from_search'=> true,
        'publicly_queryable' => false,
        'show_in_nav_menus'  => false,
        'menu_icon'          => 'dashicons-images-alt2',
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'slide' ),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => null,
        'supports'           => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
    );
    register_post_type( 'slide', $args );
    flush_rewrite_rules();
}
add_action( 'init', 'create_slide_post_type' );

जवाबों:


42

अपने कस्टम पोस्ट प्रकार को पंजीकृत करते समय आपको अपना publicly_queryableतर्क निर्धारित करना चाहिए true

ध्यान दें : जोड़ें flush_rewrite_rules(), पृष्ठ को एक या दो बार रीफ़्रेश करें और IT IMEDIATELY को निकालें। आप flush_rewrite_rules()कोडेक्स के प्रावधानों के तहत नहीं रख सकते ।

यह एक महंगा ऑपरेशन है, इसलिए इसका उपयोग केवल तभी किया जाना चाहिए जब बिल्कुल आवश्यक हो


1
अरे वाह, यहाँ भी काम किया। यह पूरी तरह से गैर-स्पष्ट था। धन्यवाद!
टोबी देशाने

मेरे लिए काम किया! धन्यवाद!
जेम्सहॉक्स

हाँ! अंत में दोनों करने के बाद यह काम किया।
एरिक

16

डैशबोर्ड से पुनर्लेखन नियम को फ्लश करें -> सेटिंग्स-> पर्मलिंक पेज। सेव बटन पर क्लिक करें और फिर अपने स्लाइड विवरण पृष्ठ की जाँच करें। यह अब काम करेगा। अन्यथा आप इस कोड flush_rewrite_rules()को अपने create_slide_post_type()फ़ंक्शन में लिख सकते हैं । कोडेक्स देखें


2
Permlinks में सेव बटन पर क्लिक करने से मेरे लिए काम किया। जब मैंने साइट को एक उत्पादन सर्वर में स्थानांतरित किया, तो सभी कस्टम पोस्ट प्रकार लिंक टूट रहे थे। इसने इसे ठीक कर दिया। धन्यवाद!
cbloss793

+1 सिर्फ पर्मलिंक्स में सेव पर क्लिक करने से भी मेरे लिए काम किया।
मार्सएंडबैक

पर्मलिंक को सहेजना काम करता है। लेकिन कृपया उत्पादन कोड (यानी अंदर ) में कॉल के flush_rewrite_rules()बाद न जोड़ें । प्लग-सक्रियण हुक या एक विकल्प मान का उपयोग करें यह निर्धारित करने के लिए कि आपने एक नया पोस्ट प्रकार जोड़ाregister_post_type()create_slide_post_type
फिलिप

6

अपने पर्मलिंक को ताज़ा करें। व्यवस्थापन-> सेटिंग-> पर्मलिंक पर जाएं और सेव को हिट करें। यह आपके पर्मलिंक्स को ताज़ा करता है और मदद करनी चाहिए, खासकर यदि आप फिर से लिख रहे हैं ('पुनः लिखें' => सरणी ('स्लग' => 'स्लाइड'),)


1

आपको अपनी virtualhost अपाचे में निम्नलिखित सेट करना चाहिए:

    <Directory /var/www/html/wordpress>
            AllowOverride All
    </Directory>

फिर, अपने पर्मलिंक ताज़ा करें: wp-admin-> सेटिंग्स-> पर्मलिंक। मेरे लिए यही काम किया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.