我们必须在 admin_init 钩子之前,after_setup_theme 之后调用 register_post_type(),一个比较好的选择是 init 钩子。
网址
如果我们需要为自定义文章类型设置一个别名,可以在 register_post_type() 的 rewrite 参数中添加一个 key => value 键值对。如下:
function my_news() {
/**
* Post Type:
*/
$labels = [
"name" => __( "news", "custom-post-type-ui" ),
"singular_name" => __( "news", "custom-post-type-ui" ),
];
$args = [
'name' =>"news",
"label" => __( "news", "custom-post-type-ui" ),
"labels" => $labels,
"description" => "",
"public" => true,
"publicly_queryable" => true,
"show_ui" => true,
"delete_with_user" => false,
"show_in_rest" => true,
"rest_base" => "",
"rest_controller_class" => "WP_REST_Posts_Controller",
"has_archive" => false,
"show_in_menu" => true,
"show_in_nav_menus" => true,
"delete_with_user" => false,
"exclude_from_search" => false,
"capability_type" => "post",
"map_meta_cap" => true,
"hierarchical" => false,
"rewrite" => [ "slug" => "news", "with_front" => true ],//链接目录名
"query_var" => true,
"supports" => [ "title", "editor", "thumbnail" ],
'taxonomies' => array( 'category', 'post_tag' ), //分类
];
register_post_type( "news", $args );
}
add_action( 'init', 'my_news' );
可以安装插件 Custom Post Type UI 1.7.1
导出代码
function cptui_register_my_taxes_solution() {
/**
* Taxonomy: Solutions Categories.
*/
$labels = [
"name" => __( "Solutions Categories", "custom-post-type-ui" ),
"singular_name" => __( "Solutions Categories", "custom-post-type-ui" ),
];
$args = [
"label" => __( "Solutions Categories", "custom-post-type-ui" ),
"labels" => $labels,
"public" => true,
"publicly_queryable" => true,
"hierarchical" => false,
"show_ui" => true,
"show_in_menu" => true,
"show_in_nav_menus" => true,
"query_var" => true,
"rewrite" => [ 'slug' => 'solution', 'with_front' => true, ],
"show_admin_column" => false,
"show_in_rest" => true,
"rest_base" => "solution",
"rest_controller_class" => "WP_REST_Terms_Controller",
"show_in_quick_edit" => false,
];
register_taxonomy( "solution", [ "solutions" ], $args );
}
add_action( 'init', 'cptui_register_my_taxes_solution' );