WordPress 默认提供了五种文章类型:文章(Post)、页面(Page)、附件(Attachment)、修订版本(Revision)和菜单(Menu)。对于大多数博客或简单内容发布平台而言,这些文章类型已经足够使用。但是,如果你想使你的网站更加丰富多样,你需要自定义内容类型。例如,如果你想创建一个网址列表,可以定义一个名为“Sites”的自定义类型。
要注册一个新的新类型,可以使用register_post_type()函数。
如果你想在主题中添加,那么下面代码可以放在functions.php
中,如果想在插件中添加,放在插件的入口文件中即可。
以下是一个定义sites
类型的示例代码:
add_action( 'init', 'post_type_sites' );
function post_type_sites() {
$labels = array(
'name' => _x('网址','taxonomy general name','textdomain'),
'singular_name' => _x('网址','post type singular name','textdomain'),
'menu_name' => __('网址','textdomain'),
'name_admin_bar' => __('网址','textdomain'),
'add_new' => __('添加网址','textdomain'),
'add_new_item' => __('添加新网址','textdomain'),
'new_item' => __('新网址','textdomain'),
'edit_item' => __('编辑网址','textdomain'),
'view_item' => __('查看网址','textdomain'),
'all_items' => __('所有网址','textdomain'),
'search_items' => __('搜索网址','textdomain'),
'parent_item_colon' => __('Parent 网址:','textdomain'),
'not_found' => __('你还没有发布网址。','textdomain'),
'not_found_in_trash' => __('回收站中没有网址。','textdomain'),
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'sites' ),
'capability_type' => 'post',
'menu_icon' => 'dashicons-admin-site',
'has_archive' => false,
'hierarchical' => false,
'show_in_rest' => true,
'menu_position' => 10,
'supports' => array( 'title', 'author', 'editor', 'comments', 'custom-fields' )//'editor','excerpt',
);
register_post_type( 'sites', $args );
}
接下来再给sites
自定义一个分类和标签,避免和文章
共用。
以下是自定义网址分类
的代码 :
// 网址分类
add_action( 'init', 'create_sites_taxonomies', 0 );
function create_sites_taxonomies() {
$labels = array(
'name' => _x('网址分类目录', 'taxonomy general name','textdomain'),
'singular_name' => _x('网址分类', 'taxonomy singular name','textdomain'),
'search_items' => __('搜索网址目录','textdomain'),
'all_items' => __('所有网址目录','textdomain'),
'parent_item' => __('父级分类目录','textdomain'),
'parent_item_colon' => __('父级分类目录:','textdomain'),
'edit_item' => __('编辑网址目录','textdomain'),
'update_item' => __('更新网址目录','textdomain'),
'add_new_item' => __('添加新网址目录','textdomain'),
'new_item_name' => 'New Genre Name',
'menu_name' => __('网址分类','textdomain'),
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'show_in_rest' => true,
'rewrite' => array( 'slug' => "sitecategory" ),
);
register_taxonomy( 'sitecategory', array( 'sites' ), $args );
}
以下是网址标签的代码:
add_action( 'init', 'create_sites_tag_taxonomies', 0 );
function create_sites_tag_taxonomies() {
$labels = array(
'name' => _x('网址标签', 'taxonomy general name','textdomain'),
'singular_name' => _x('网址标签', 'taxonomy singular name','textdomain'),
'search_items' => __('搜索网址标签','textdomain'),
'all_items' => __('所有网址标签','textdomain'),
'parent_item' => __('父级分类目录','textdomain'),
'parent_item_colon' => __('父级分类目录:','textdomain'),
'edit_item' => __('编辑网址标签','textdomain'),
'update_item' => __('更新网址标签','textdomain'),
'add_new_item' => __('添加新网址标签','textdomain'),
'new_item_name' => 'New Genre Name',
'menu_name' => __('网址标签','textdomain'),
);
$args = array(
'hierarchical' => false,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'show_in_rest' => true,
'rewrite' => array( 'slug' => 'sitetag', 'with_front' => false ),
);
register_taxonomy( 'sitetag', array( 'sites' ), $args );
}
定义完之后,可以在 Wordpress 后台看到网址
菜单,可以添加新的网址,新的网址分类,网址标签。
发表回复