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' );
#1 楼
注册自定义帖子类型时,应将publicly_queryable
参数设置为true
。请注意:添加
flush_rewrite_rules()
,刷新页面一次或两次,并立即删除它。除非按照法典中的规定,否则您不应保留flush_rewrite_rules()
。这是一项昂贵的操作,因此仅在绝对必要时才应使用
#2 楼
从仪表板->设置->固定链接页面刷新重写规则。单击保存按钮,然后检查您的幻灯片详细信息页面。现在可以使用了。否则,您可以在flush_rewrite_rules()
函数中编写此代码create_slide_post_type()
。参见食典评论
单击Permlinks中的保存按钮对我有用。将网站移至生产服务器后,所有自定义帖子类型链接都断开了。这样就解决了。谢谢!
–cbloss793
17-10-11在17:29
+1只需单击“永久链接”中的“保存”对我也有用。
– MarsAndBack
18年8月12日在0:52
保存永久链接有效。但是,请不要在生产代码中的register_post_type()调用之后(即,在create_slide_post_type内部)添加“ flush_rewrite_rules()”。使用插件激活挂钩或选项值来确定您添加了新的帖子类型
– Philipp
19年6月14日在7:31
#3 楼
刷新您的固定链接。转到管理->设置->永久链接,然后点击保存。它会刷新您的固定链接,应该会有所帮助,尤其是在您要更改重写('rewrite'=> array('slug'=>'slide'),)的情况下,尤其如此评论
为我做了吗-谢谢
– cljk
20-04-27在9:48
#4 楼
您应该在虚拟主机apache中设置以下内容: <Directory /var/www/html/wordpress>
AllowOverride All
</Directory>
然后刷新您的永久链接:wp-admin-> settings-> permalinks。
我。
评论
哇,这在这里也起作用。那是完全不明显的。谢谢!
– Toby Deshane
19年1月28日在19:02
为我工作!谢谢!
–JamesHoux
19年6月10日在18:58
是!最终,两者都奏效了。
–埃里克
19年7月24日在13:42
flush_rewrite_rules()对我来说很不错-不错!
–詹姆斯·库欣
20年11月2日,15:13
您可以简单地尝试转到“设置”>“永久链接”,然后单击“保存”而不更改任何内容。如果您不想编辑代码,而正在寻找“希望”快速修复
–乔纳斯·梅尔赫(Jonas Merhej)
20/12/2在10:11