上一篇讲了创建首页模板,这次来说说自定义文章类型得事情,什么是自定义文章类型,这个是不少刚刚接触wordpress比较疑惑得问题。我们在看后台得时候,你会发现左侧菜单就是wordpress默认得几个,文章,媒体,页面,评论。外观等等这些,既然是自定义文章类型,那肯定跟文章是有关系,默认得wordpress后台文章文章类型是 post,我们在前台调用文章内容列表得时候,默认都是post,假如我们要做一个电影类型得网站,显然放到文章里面是不大适合,而且也不直观。这个时候需要借助wordpress自定义文章类型得功能,在后台左侧在创建一个新得菜单出来,比如电影(Movie),它得属性跟文章是一样得,区别就是类型不一样,代码就是下面这段,wordpress已经给我们准备了,我们拿过来使用就可以。

//https://codex.wordpress.org/Function_Reference/register_post_type  官方文档
$labels = array(
	'name'              => "电影",
	'singular_name'     => "电影",
	'add_new_item'      => "添加电影",
	'add_new'           => "添加电影",
	'edit_item'         => "编辑电影",
	'new_item'          => "新电影",
	'view_item'         => "显示电影",
	'search_item'       => "搜索电影",
	'parent_item_colon' => "父级电影",
	'not_found'         => "未找到",
	'not_found_in_trash' => __('在回收站未找到'),
	'parent_item_colon'  => '', //hierarchical为true的时候使用,选择父级页面
	'menu_name'          => '电影'
);

$args = array(
	'labels' => $labels,
	'menu_position' => 5,    //菜单的位置
	'public'        => true,  //是否为公共,如果为false则在调用和显示导航的时候不会显示出来
	'has_archive'   => true,
	'hierarchical'  => false, // 文章层级,如果使用true,则跟后台页面一样
	'rewrite'       => array( 'slug' => 'show-movie' ),  //伪静态别名
	'supports'      => array( 'title' )    //默认显示的内容,只写title,则添加新电影的时候只有title标题,根据实际情况添加
);
register_post_type( 'type_movie', $args );

//menu position 菜单得位置
//    5 - below Posts
//    10 - below Media
//    15 - below Links
//    20 - below Pages
//    25 - below comments
//    60 - below first separator
//    65 - below Plugins
//    70 - below Users
//    75 - below Tools
//    80 - below Settings
//    100 - below second separator 
//

//supports 默认显示的内容

//    'title'
//    'editor' 
//    'author'
//    'thumbnail' 
//    'excerpt'
//    'trackbacks'
//    'custom-fields'
//    'comments'
//    'revisions' 
//    'page-attributes' 
//    'post-formats' 

以上就是我们最为常用的代码内容,因为这个函数里面的参数有很多,如果真要细讲起来那就多了去了。比如权限,默认使用的权限规则是post,我们也可以自己定义属于自己的权限,不过这样的话,你需要给所在用户增加权限,才能使用和显示电影类型,前期大家使用这个就足够了。想更多了解的可以去看看官网文档,上面有写。这个函数还可以实现的效果

  1. 设定自己的权限
  2. 是否显示菜单
  3. 是否可以导出
  4. 是否用在rest api
  5. 是否添加定义好的分类
  6. …….

这个函数还是蛮强大的,要用到熟练需要多用和尝试,切合自己的需求来进行操作,这样印象深刻些。