web-dev-qa-db-ja.com

カスタム投稿タイプの単一ページで404エラーが返される

私はslideというカスタム投稿タイプを持っています。コンテンツといくつかのカスタムフィールドがあります。ユーザーがスライドの単一ページリンクをクリックしたときに、 _ wp _ single.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' );
15
Ramin

カスタム投稿タイプを登録するときは、publicly_queryable引数をtrueに設定する必要があります。

注意してください flush_rewrite_rules() を追加して、ページを1、2回更新して、すぐに削除してください。コーデックスのように規定されている場合を除き、flush_rewrite_rules()を保持しないでください。

これは高価な操作なので、絶対に必要な場合にのみ使用してください。

36
Pieter Goosen

ダッシュボード - > [設定] - > [固定リンク]ページから書き換えルールをフラッシュします。保存ボタンをクリックして、スライドの詳細ページを確認します。それは今うまくいくでしょう。そうでなければ、このコードflush_rewrite_rules()create_slide_post_type()関数に書くことができます。 コーデックス を参照してください。

11

パーマリンクを更新してください。 [管理] - > [設定] - > [固定リンク]に移動して[保存]をクリックします。それはあなたのパーマリンクを更新し、あなたが書き換えを変更している場合は特に、 ( 'rewrite' => array( 'slug' => 'slide')、) を助けてください。

5
Ales