WordPress3+的自定义内容类型功能详解
in 沉思录 | 评论关闭WordPress3+进一步完善了自定义内容类型功能,也算是向CMS迈进了一大步。网络上关于这个功能的介绍少之又少,来来回回就那么几篇转来转去的,那我就来总结一下吧。
实现方式一:辅助插件
这里的插件只是辅助你利用这个功能的插件,并不是传统意义上的装上就完事ok的插件,关于插件的介绍大家可参见 wordpress.la的文章《如何在WordPress 3.0中使用自定义内容类型》 我就不多做介绍了
实现方式二:functions.php中添加自定义代码
对于完美主义者或者不喜欢插来插去的童鞋可以参考这个方法,废话不多说直接上例子;
首先打开你的主题的functions.php文件,然后添加代码如下
[php]
add_action( ‘init’, ‘create_events’ );
function create_events() {
$labels = array(
‘name’ => _x(‘Events’, ‘post type general name’),
‘singular_name’ => _x(‘Event’, ‘post type singular name’),
‘add_new’ => _x(‘Add New’, ‘Event’),
‘add_new_item’ => __(‘Add New Event’),
‘edit_item’ => __(‘Edit Event’),
‘new_item’ => __(‘New Event’),
‘view_item’ => __(‘View Event’),
‘search_items’ => __(‘Search Events’),
‘not_found’ => __(‘No Events found’),
‘not_found_in_trash’ => __(‘No Events found in Trash’),
‘parent_item_colon’ => ”
);
$supports = array(‘title’, ‘editor’, ‘custom-fields’, ‘revisions’, ‘excerpt’);
register_post_type( ‘event’,
array(
‘labels’ => $labels,
‘public’ => true,
‘supports’ => $supports
)
);
}
[/php]
参数详解:
add_action告诉wordpress初始化时调用函数create_events
$label数组告诉wordpress如何显示这个文章类型的相关信息
$supports数组告诉wordpress这个文章类型可以支持什么(比如文章摘要excerpt)
register_post_type就是在wordpress注册这个新的文章类型,这个函数有很多选项可用,具体可以参阅相关文章。
一旦我们把代码添加到function.php后,我们可以在后台管理页面看到如下页面:
点击添加新事件(Add New)你可以像发表一般文章一样来添加新的事情,如下图:
显示自定义内容类型的文章
为了显示自定义内容类型的文章,请添加下面的代码到循环(loop)中。将“name”用你的内容类型名称替换。 注意: 你不需要在index.php文件中添加自定义的内容类型。你可以创建一个自定义WordPress页面并循环(Loop)里运行下面的查询。
query_posts( 'post_type=name');
要显示来自多个内容类型下的文章,将上面的代码改成下面这样,并记得将“movie”改成自定义内容类型的名称。
query_posts(array('post_type' => array('post', 'movies')));
使用上面的代码将会显示所有来自普通的内容类型的文章以及其他自定义内容类型下的内容。