本文最后更新于 967 天前,其中的信息可能已经有所发展或是发生改变。
wordpress默认只有一个文章类型,自定义文章类型可以是文章、产品、新闻、甚至是一个商品。它可以让网站的各种内容类型区分开来,避免所有内容都在默认的文章类型里导致混淆。
register_post_type()
register_post_type($post_type,$args); $post_type 文章的类型(英文) $args 文章类型的参数设定
下面用一个实例来说明,越不常用的参数排在越后面
$labels = array( 'name' => '客户管理',//文章类型的显示名称 'singular_name' => '客户管理',//单篇文章类型的显示名称 'add_new' => '添加客户',//添加文章的显示字符 'all_items' => '所有客户',//所有文章的显示字符 'add_new_item' => '添加新客户',//添加新文章的显示字符 'edit_item' => '编辑客户',//编辑文章的显示字符 'new_item' => '新客户',//新文章的显示字符 'view_item' => '查看客户',//查看文章的显示字符 'search_items' => '搜索客户',//搜索文章的显示字符 'not_found' => '没有找到客户',//没有找到文章的显示字符 'not_found_in_trash' => '垃圾桶空空如也',//垃圾桶的显示字符 'parent_item_colon' => '',//分层类型 'menu_name' => '客户管理'//菜单名称的显示字符 ); $args = array( 'labels' => $labels, 'description' => '客户管理表',//文字介绍描述 'menu_icon' => 'dashicons-cart',//菜单图标,参考百度。默认值:null,文章的图标 'menu_position' => 5,//在后台菜单的位置 /* 5 文章之后 10 媒体之后 15 链接之后 20 页面之后 25 评论之后 60 第一个分隔点之后 65 插件之后 70 用户之后 75 工具之后 80 设置之后 100 第二个分隔点之后 */ 'supports' => array('title','author','custoom-fields'), /* 文章默认有这几种功能 title 标题 editor 正文 author 作者 thumbnail 特色图像 excerpt 摘要 trackbacks 追踪引用 custom-fields 自定义字段名称以_开头,添加值保存后不会在编辑页面显示 comments 评论 revisions 修订版,即自动保存 page-attributes 属性,文章即排序,页面即选择页面模板 */ 'capability_type' => 'post',//查看、编辑、删除的权限类型。默认值:post 'register_meta_box_cb' => '',//编辑表单的元框时调用的回调函数。默认值:无 'taxonomies' => 'customer_category',//添加注册的自定义分类法 'has_archive' => true,//是否显示所有文章归档 'rewrite' => false,//触发重定向,为了防止重写,设置为false。默认为true /* slug 别名。默认值:$post_type with_front 布尔值,是否在permastruct前面加上WP_Rewrite::$front,默认为true feeds 布尔值,是否支持feeds,默认值继承$has_archive pages 布尔值,固定链接是否提供分页功能,默认为true ep_mask 要分配的端点掩码,如果未指定并且设置了permalink_epmask,则继承自$permalink_epmask。 如果未指定并且未设置permalink_epmask,则默认为EP_PERMALINK */ 'public' => true, /* publicly_queryable 可以从前台获取的变量(url重写会用到)。默认值:与public相同 exclude_from_search 是否能被搜索到。默认值:与public相反 show_ui 在后台是否有管理页面。默认值:与public相同 show_in_nav_menus 是否可在导航菜单中选择post_type。默认值:与public相同 show_in_menu 是否在后台菜单中显示。默认值:null,为true时show_ui必须与其一致 show_in_admin_bar 是否在后台工具栏中显示 show_in_rest 是否在REST API中使用,设置为true将在块编辑器中可用 rest_base 更改REST API的基础路径 rest_controller_class REST API控制器类名 */ 'capabilities' => '',//文章类型具有哪些权限。 'map_meta_cap' => false,//是否使用内部默认元功能。默认值:false 'hierarchical' => false,//是否允许有父级文章 'query_var' => true,//设置文章类型的query_var键。 默认值:true,false表禁用 'can_export' => true,//可以导出这个文章类型。默认值:true 'delete_with_user' => false,//删除用户时是否同步删除该用户的文章,默认为空,表示文章类型支持作者功能时则删除文章 ); register_post_type('customer',$args); 注册文章类型为:customer
最后挂在init
add_action('init','customer_post_type');
简单写一个自定义字段函数
function customer_post_type_metabox(){ add_meta_box('customer_add','客户地址','customer_add_metabox','customer','normal'); } function customer_add_metabox(){ echo "hellow!"; }
自定义字段能够让你随心所欲的开发一个只属于你的文章编辑界面。后台自定义字段添加将在下一篇文章中详细介绍