it-swarm.com.de

Benutzerdefinierte Postseiten geben den Fehler 404 zurück

Ich habe einen benutzerdefinierten Beitragstyp namens slide. Es hat Inhalt und einige benutzerdefinierte Felder. Ich möchte, dassWPdas single.php-Thema oder das single-slide.php-Thema anzeigt, wenn der Benutzer auf den Link für eine einzelne Seite der Folie klickt. Das Problem, das ich habe, ist, dassWPden Fehler 404 auslöst, wenn ich die einzelne Folienseite sehen möchte.

hier ist mein Code in 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' );
15
Ramin

Sie sollten Ihr Argument publicly_queryable auf true setzen, wenn Sie Ihren benutzerdefinierten Beitragstyp registrieren.

ACHTUNG : Füge flush_rewrite_rules() hinzu, aktualisiere die Seite ein oder zweimal und ENTFERNE ES SOFORT. Sie DÜRFEN NICHT flush_rewrite_rules() behalten, es sei denn, dies unterliegt den Bestimmungen wie im Kodex.

dies ist eine teure Operation, daher sollte sie nur verwendet werden, wenn dies unbedingt erforderlich ist

36
Pieter Goosen

Löschen Sie die Umschreiberegel über das Dashboard -> Einstellungen -> Permalink-Seite. Klicken Sie auf die Schaltfläche Speichern und überprüfen Sie dann die Seite mit den Foliendetails. Es wird jetzt funktionieren. Andernfalls können Sie diesen Code flush_rewrite_rules() in Ihre create_slide_post_type() -Funktion schreiben. Siehe den Codex

11

Aktualisiere deine Permalinks. Gehen Sie zu Admin-> Einstellungen-> Permalinks und klicken Sie auf Speichern. Es aktualisiert Ihre Permalinks und sollte helfen, besonders wenn Sie das Umschreiben ändern ('rewrite' => array ('slug' => 'slide'),)

5
Ales