下面我们就一起为网站创建一个自定义的内容类型,我们要做的是一个电影网站,可以先为电影内容来创建一个内容类型。WordPress 默认已经有了几种内容类型,post,文章,page,页面,attachment 附件,nav_menu_item ,菜单项 ...
我们自己可以创建的内容类型有两种形式,一种就是跟文章类似的内容类型,另一种是跟 page 页面类似的内容类型。
创建新的内容类型可以通过一些插件来做,比如 custom post type ui ,或者 types ,他们都提供了一个用户界面,点点鼠标,输入点相关的信息就可以了。或者你也可以通过代码来创建内容类型 ... 你可以把这些代码放在主题的 functions.php 文件里 ...
下面我们通过代码来创建一个内容类型 ...
我们先在主题的目录里创建一个 functions.php 文件 ... 如果你的主题里已经有了这个文件,可以直接打开使用 ....
这个文件的开始要先输入一个 php 开始的标签 <?php ...
我们可以先自己创建一个函数 ... 先添加一段注释 ...
/*
* 自定义内容类型 - 电影
*/
函数的名称可以使用当前我们使用的主题的名称开头 ...
function movietalk_custom_post_type_movie(){
}
后面可以再加上一个有意义的名称 ... custom_post_type 的意义就是自定义内容类型,后面再加上一个这个内容类型的名称 ... movie 就是电影的意思 ... 你完全可以根据自己的需求来命名这个函数 ....
下面我们可以使用 add_action() 函数,把自己创建的这个函数挂载到 WordPress 的 init() 函数上 ... 这样 WordPress 在运行 init() 这个函数的时候也会运行我们自己创建的函数 ...
http://codex.wordpress.org/Plugin_API/Action_Reference/init
add_action( 'init', 'movietalk_custom_post_type_movie' );
然后在我们创建的这个函数里,可以使用 WordPress 的 register_post_type() 这个函数来创建一个新的内容类型。
http://codex.wordpress.org/Function_Reference/register_post_type
register_post_type( );
下面我们要设置一下这个函数的相关参数 ... 第一个是想要注册的内容类型的名称 ...
'movie'
movie 就是这个新的内容类型的名称 ... 再输入一个逗号 , 后面还要再设置一些相关的参数 ... 这些参数会在一个数组里 ... 为了更清楚一些,我们可以把这些参数交给一个变量 ... $args ...
然后在 register_post_type() 的上面再定义这个 $args 变量 ....
$args = array(
)
先输入一个 'public' ... 设置一下是否要公开显示这个内容类型 ... 设置为 true ... 表示我们要公开显示 ... 如果设置为 false 的话 ... 这个内容类型就不会公开显示出来 ...
我们再设置一下 label 标签参数 ... 'label' ... 设置为 电影 ... 这个标签的值会显示在管理后台 ....
register_post_type() 还有很多相关的参数 ... 不过到目前为止我们应该就可以在后台看到新创建的内容类型了 ...
保存一下 ...
回到 WordPress 的管理后台 ...
你会看到一个新的导航菜单 ... 就是这个 电影 ... 点击打开 .... 在这里,你可以管理电影这个内容类型上的内容 ...
不过这里有很多地方我们还要再修改一下 ... 比如在 电影 旁边有 写文章 这个标签 .... 我们可以改成 创建电影 之类的字符 ...
点击 写文章 ... 会打开创建内容的界面 ... 同样,我们也可以修改一下这个界面上的一些标签 ... 比如 撰写新文章 这个标签 ...
点击 显示选项 ... 现在,这里只有一个 别名 ...
想给电影这个内容类型添加其它的功能,比如自定义字段,特色图像等等,我们需要再设置一下register_post_type() 的相关参数 ...
在下面视频里,我们再来看一下 ...