CMS Press 这款插件也可以让你添加自定义内容类型和分类法,由Michael Pretty所开发。与Custom Post Type UI插件先比,这款插件的优势在与它可以在所有的内容类型之间共享分类法。
使用CMS Press来创建自定义内容类型也与上一款插件一样非常简单。两者的主要区别在于一个是 “内容类型识别符”而另一个是“固定链接结构”。“内容类别识别符”仅仅是你希望给自定义内容类型取的一个slug name。“内容类别识别符”接着通过你所选择slug name给 %identifier%提供值来创建固定链接。这个特征使得你可以给每一个自定义内容类型设定不同的固定链接结构。
所以,如果你希望自定义内容类型的固定链接像下面这样:example.com/category/post_type/postname 你需要在“内容类型识别符”下输入下面的代码: %category%/%identifier%/%postname%
创建自定义内容类型 – 使用Functions.php文件
如果你不想使用插件来创建自定义内容类型,只要在主题的functions.php文件添加如下代码:
// 创建叫做“movie”类型的内容 register_post_type(‘movies’, array( ‘label’ => ‘Movies’, ‘public’ => true, ‘show_ui’ => true, ‘capability_type’ => ‘post’, ‘hierarchical’ => false, ‘rewrite’ => array(‘slug’ => ‘movies’), ‘query_var’ => true, ‘supports’ => array( ‘title’, ‘editor’, ‘excerpt’, ‘trackbacks’, ‘custom-fields’, ‘comments’, ‘revisions’, ‘thumbnail’, ‘author’, ‘page-attributes’,) ) );
下面,我们来分析下这段代码。
register_post_type( $post_type, $args ): 此函数接受两个参数$post_type内容类型的名称和 $args,一个参数数组。
label: 内容类型名称的复数形式,显示在管理面板的侧边栏。
public: true/false是否允许在管理界面出现这种类型的内容。
show_ui: true/false显示还是隐藏默认的管理此类型内容的用户界面。
capability_type: 默认情况下,自定义内容类型下的文章可以预览、编辑、删除。
hierarchical: 内容类型是否有层级结构。
rewrite: true/false. 默认情况下是true,也就是说如果输入一个slug变量,那么就会在文章的前面加上 slug name。
query_var: true/false 设置是否将内容类型的名称设为一个查询变量。
大家也可以阅读WordPress Codex了解 register_post_type()函 数。
显示自定义内容类型的文章
为了显示自定义内容类型的文章,请添加下面的代码到循环(loop)中。将“name”用你的内容类型名称替换。 注意: 你不需要在index.php文件中添加自定义的内容类型。你可以创建一个自 定义WordPress页面并循环(Loop)里运行下面的查询。
query_posts( ‘post_type=name’);
要显示来自多个内容类型下的文章,将上面的代码改成下面这样,并记得将“movie”改成自定义内容类型的名称。
query_posts(array(‘post_type’ => array(‘post’, ‘movies’)));
使用上面的代码将会显示所有来自普通的内容类型的文章以及其他自定义内容类型下的内容。
评论