自定义帖子类型单页不起作用
Posted
技术标签:
【中文标题】自定义帖子类型单页不起作用【英文标题】:Custom post type single page not working 【发布时间】:2017-02-01 04:50:09 【问题描述】:我有 aj-fashions 自定义帖子类型。从技术上讲,我试图在名为 fashio-template.php 的模板文件中显示所有帖子的循环,现在对于单个帖子,我创建了文件 single-fashions.php。我仍然收到找不到页面的 404 错误。
请指教,以下是我的代码。
add_action( 'init', 'fashion' );
function fashion()
register_post_type( 'aj-fashion',
array(
'labels' => array(
'name' => __( 'AJ Fasions' ),
'singular_name' => __( 'AJ Fashion' )
),
'public' => true,
'has_archive' => true,
'show_ui' => true,
'hierarchical' => false,
'rewrite' => array('slug' => 'aj-fashions',),
'supports'=> array( 'title', 'editor', 'thumbnail', 'author' ),
)
);
【问题讨论】:
添加flush_rewrite_rules();工作。 什么是单个帖子特定的帖子循环??? 从设置更新永久链接。 它工作了我在永久链接中添加了帖子 $post->ID 并且它的工作......谢谢大家...... 【参考方案1】:我也遇到过同样的问题,不过可以通过以下代码来解决:
function register_fashion()
$labels = array(
'name' => 'AJ Fasions',
'singular_name' => 'AJ Fasion',
'menu_name' => 'AJ Fasions',
'name_admin_bar' => 'AJ Fasion',
'archives' => 'ajfashionArchives',
'attributes' => 'Item Attributes',
'parent_item_colon' => 'Parent Item:',
'all_items' => 'All Items',
'add_new_item' => 'Add New Item',
'add_new' => 'Add New',
'new_item' => 'New Item',
'edit_item' => 'Edit Item',
'update_item' => 'Update Item',
'view_item' => 'View Item',
'view_items' => 'View Items',
'search_items' => 'Search Item',
'not_found' => 'Not found',
'not_found_in_trash' => 'Not found in Trash',
'featured_image' => 'Featured Image',
'set_featured_image' => 'Set featured image',
'remove_featured_image' => 'Remove featured image',
'use_featured_image' => 'Use as featured image',
'insert_into_item' => 'Insert into item',
'uploaded_to_this_item' => 'Uploaded to this item',
'items_list' => 'Items list',
'items_list_navigation' => 'Items list navigation',
'filter_items_list' => 'Filter items list',
);
$args = array(
'label' => 'AJ Fasion',
'description' => 'Post Type Description',
'labels' => $labels,
'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ),
'taxonomies' => array( 'fashion_category' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
);
register_post_type( 'aj-fashion', $args );
add_action( 'init', 'register_fashion', 0 );
【讨论】:
【参考方案2】:创建 single-posttype.php 后,您只需更新您的永久链接。
这比使用这个功能不起作用
放入functions.php flush_rewrite_rules(false);
【讨论】:
【参考方案3】:创建 single-posttype.php 后,您只需更新您的永久链接。进入设置-> 永久链接。每个开发人员第一次遇到这个问题。
【讨论】:
创建新模板应该不会影响此解决方案的工作,因为无论如何它都会默认使用不同的模板。只有“设置->永久链接”与此处相关。【参考方案4】:对单个模板使用single-posttype.php
。此外,如果您注册您的帖子类型并将has_archive
参数设置为true,那么您可以使用archive-posttype.php
作为您的存档模板,这将允许您跳过那里的查询,因为全局$wp_query
对象将已使用您的自定义帖子类型填充。
在您的情况下检查以下示例
single-fashions.php
而不是single-aj-fashion.php
。
【讨论】:
我的自定义帖子类型 = "aj-fasion",这就是为什么我将其命名为 single-aj-fashion.php?我做错了吗?好心的建议 你没有错,但无论你在register_post_type
中使用什么slug,它都是wordpress 标准,需要在单个ex 之后添加slug:single-posttypeslug.php
。它对你有用吗?以上是关于自定义帖子类型单页不起作用的主要内容,如果未能解决你的问题,请参考以下文章