【问题标题】:Custom post type single page returns 404 error自定义帖子类型单页返回404错误
【发布时间】:2014-09-29 08:45:52
【问题描述】:

我有一个名为slide 的自定义帖子类型。它有内容和一些自定义字段。我希望 WP 在用户单击幻灯片单页链接时显示 single.php 主题或 single-slide.php 主题。我遇到的问题是 WP 在我想查看单个幻灯片页面时抛出 404 error

这是我在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();
}

【问题讨论】:

    标签: php wordpress http-status-code-404 custom-post-type


    【解决方案1】:

    转到设置 -> 永久链接并更新它。

    它会起作用的。

    【讨论】:

      【解决方案2】:

      自定义帖子类型应该可以从公共查询:

      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' => true,//here should be changed
              '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();
      }
      

      【讨论】:

        【解决方案3】:

        为什么不为自定义帖子类型寻找一些插件。我可以建议你的最好的插件是Types 插件。

        随心所欲地创建帖子类型、自定义字段以及分类法。

        它为您提供了默认帖子类型“POST”的所有选项。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-03-22
          • 1970-01-01
          • 2023-03-13
          • 1970-01-01
          • 2015-06-07
          • 2014-05-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多