J'ai un type de message personnalisé appelé slide
. Il a du contenu et des champs personnalisés. Je veux que WP affiche le single.php
thème ou le single-slide.php
thème lorsque l'utilisateur clique sur le lien d'une page de diapositive. le problème que j'ai est que WP jette une erreur 404, quand je veux voir la page de diapositive unique.
voici mon code en 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' );
Rincez la règle de réécriture à partir du tableau de bord -> Paramètres -> Page Lien permanent. Cliquez sur le bouton Enregistrer, puis vérifiez la page des détails de votre diapositive. Cela fonctionnera maintenant. Sinon, vous pouvez écrire ce code
flush_rewrite_rules()
dans votrecreate_slide_post_type()
fonction. Voir le Codexla source
flush_rewrite_rules()
après lesregister_post_type()
appels dans le code de production (c'est-à-dire à l'intérieurcreate_slide_post_type
). Utilisez le crochet d'activation du plug-in ou une valeur d'option pour déterminer que vous avez ajouté un nouveau type de messageRafraîchissez vos permaliens. Allez dans Admin-> Paramètres-> Permaliens et appuyez sur Enregistrer. Il rafraîchit vos permaliens et devrait vous aider, surtout si vous changez de réécriture ('rewrite' => array ('slug' => 'slide'),)
la source
Vous devez définir les éléments suivants dans votre apache virtualhost:
Ensuite, actualisez vos permaliens: wp-admin-> settings-> permalinks. Cela a fonctionné pour moi.
la source