如何在不使用wordpress中的任何插件的情况下维护自定义帖子类型中的父子关系?
例如: 当你访问这个网站时
你可以找到志愿者影响菜单。在此菜单下,我已制作volunteers_impact
分类法,通过使用名为gdcpt自定义帖子类型的插件对志愿者影响进行分类。但我想在不使用任何插件的情况下这样做,最重要的是我想保持父子关系。
在此网站中,单击
www.volunteeringnepal.com/volunteers_impact/volunteering-impact-2013
你会发现2013年的志愿者影响力。分类名称是voluteers_impact
,但我想保留分类标识名volunteer-impact
,这对于SEO目的是有益的。
在提供自定义帖子类型和分类名称时,此插件建议仅使用下划线来连接两个单词。
点击单页假设
http://www.volunteeringnepal.com/volunteer-impact/women-empowerment-2013/
您将看到帖子名称(志愿者影响)和分类名称(志愿者_影响)的区别。我如何对其进行分类以使网址结构相同。例如:
volunteeringnepal.com/volunteer-impact/volunteering-impact-2013
用于分类和
volunteeringnepal.com/volunteer-impact/women-empowerment-2013
答案 0 :(得分:0)
使用连字符(-
)分隔自定义分类法和自定义帖子类型中的单词只是不好的做法。您不应该在分类/自定义帖子类型名称中使用任何特殊字符,数字或大写字母,因为它们在命名自定义模板后会非常麻烦。这些会破坏模板层次结构,并且将忽略所有自定义模板的使用。你可以自己去尝试一下。只应使用下划线(_
)。
我总是尝试使用单个词来进行分类和发布类型名称,因为它们在这种情况下不太容易失败。使用起来也更清洁。
要保留您所使用的网址结构,您应该创建一个自定义重写规则来为您处理
修改强>
以下是为主题添加自定义分类和自定义帖子类型的代码。只需在functions.php中添加它即可。去玩游戏
function event_post_example() {
register_post_type( 'event_type',
array(
'labels' => array(
'name' => __('Events Posts', 'baretheme'),
'singular_name' => __('Event Post', 'baretheme'),
'all_items' => __('All Event Posts', 'baretheme'),
'add_new' => __('Add New Event Post', 'baretheme'),
'add_new_item' => __('Add New Event Type', 'baretheme'),
'edit' => __( 'Edit', 'baretheme' ),
'edit_item' => __('Edit Post Types', 'baretheme'),
'new_item' => __('New Post Type', 'baretheme'),
'view_item' => __('View Post Type', 'baretheme'),
'search_items' => __('Search Post Type', 'baretheme'),
'not_found' => __('Nothing found in the Database.', 'baretheme'),
'not_found_in_trash' => __('Nothing found in Trash', 'baretheme'),
'parent_item_colon' => ''
), /* end of arrays */
'description' => __( 'This is the example event post type', 'baretheme' ), /* Custom Type Description */
'public' => true,
'publicly_queryable' => true,
'postids_from_search' => false,
'show_ui' => true,
'query_var' => true,
'menu_position' => 9,
'menu_icon' => get_stylesheet_directory_uri() . '/library/images/custom-post-icon.png',
'rewrite' => array( 'slug' => 'event_type', 'with_front' => false ),
'has_archive' => 'event_type',
'capability_type' => 'post',
'hierarchical' => false,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'sticky')
) /* end of options */
); /* end of register post type */
register_taxonomy( 'event_cat','event_type',
array(
'labels' => array(
'name' => __( 'Event Categories', 'baretheme' ),
'singular_name' => __( 'Event Category', 'baretheme' ),
'search_items' => __( 'Search Event Categories', 'baretheme' ),
'all_items' => __( 'All Event Categories', 'baretheme' ),
'parent_item' => __( 'Parent Event Category', 'baretheme' ),
'parent_item_colon' => __( 'Parent Event Category:', 'baretheme' ),
'edit_item' => __( 'Edit Event Category', 'baretheme' ),
'update_item' => __( 'Update Event Category', 'baretheme' ),
'add_new_item' => __( 'Add New Event Category', 'baretheme' ),
'new_item_name' => __( 'New Event Category Name', 'baretheme' )
),
'hierarchical' => true,
'show_admin_column' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'event-slug' ),
)
);
register_taxonomy_for_object_type( 'event_cat', 'event_type' );
}
add_action( 'init', 'event_post_example');