Une page unique de type publication personnalisée renvoie une erreur 404

11

J'ai un type de message personnalisé appelé slide . Il a un contenu et des champs personnalisés. Je souhaite que WP affiche le thème single.php ou single-slide.php lorsque l'utilisateur clique sur le lien d'une seule page de la diapositive. Le problème que j'ai, c’est que WP renvoie une erreur 404 lorsque je souhaite afficher la page de diapositive unique.

voici mon code dans 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' );
    
posée Ramin 06.08.2014 - 14:02

3 réponses

28

Vous devez définir votre argument publicly_queryable sur true lors de l'enregistrement de votre type d'article personnalisé.

PRENEZ NOTE : ajoutez flush_rewrite_rules() , actualisez la page une ou deux fois, puis REMOVE. C'EST IMMÉDIATEMENT. Vous NE DEVRIEZ PAS garder flush_rewrite_rules() sauf dans les cas prévus dans le codex.

  

C’est une opération coûteuse, elle ne devrait donc être utilisée que lorsque cela est absolument nécessaire

    
réponse donnée Pieter Goosen 06.08.2014 - 15:20
8

Vider la règle de réécriture du tableau de bord - > Paramètres - > Lien permanent. Cliquez sur le bouton Enregistrer, puis vérifiez la page de détails de votre diapositive. Cela fonctionnera maintenant. Sinon, vous pouvez écrire ce code flush_rewrite_rules() dans votre fonction create_slide_post_type() . Voir le Codex

.     
réponse donnée Chinmoy Kumar Paul 06.08.2014 - 14:33
4

Actualisez vos permaliens. Allez à Admin- > Réglages- > Permaliens et cliquez sur Enregistrer. Il rafraîchit vos liens permanents et devrait vous aider, surtout si vous modifiez rewrite ('rewrite' = > array ('slug' = > 'slide'),)

    
réponse donnée Ales 29.03.2017 - 14:00

Lire d'autres questions sur les étiquettes