WordPress网站定制开发专家
WordPress企业主题特惠

赞一个 0

WordPress自定义文章类型Post Types用法

1.什么是自定义文章类型

WordPress自定义文章类型是WordPress自3.0版本以后新增的一个非常实用的特色功能。WordPress内置的两种文章类型:Post(文章)和 Page(页面),Post一般作为经常更新的文章使用(如博客日志),Page一般作为静态页面使用(如网站的关于和联系页面)。那么使用WordPress自定义文章类型就可以实现更多除Post、Page等以外的更多自定义文章类型,而且你可以设置各不同文章类型的诸多属性。

2.如何创建自定义文章类型

2,1 通过自定义文章类型插件Custom Post Type UI实现

使用Custom Post Type UI自定义文章类型插件可以非常方便地对新增的文章类型进行管理设置,设置界面如下图:http://pic.yupoo.com/housne/480249c08188/63hf4c2z.png

2,2 手工增加自定义文章类型功能

在Wordpress官方有非常详细的说明文档,使用可以多参考下官方介绍 Custom Post Types 或是 Custom post types in WordPress

本文以创建(Event)文章类型为例,记录一些事件比如个人生日、假日、会议日期等。

2,2,1 首先,你需要在主题包的functions.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
)
);

}

add_action告诉wordpress初始化时调用函数create_events

$label数组告诉wordpress如何显示这个文章类型的相关信息

$supports数组告诉wordpress这个文章类型可以支持什么(比如文章摘要excerpt)

register_post_type就是在wordpress注册这个新的文章类型,这个函数有很多选项可用,具体可以参阅相关文章。

一旦我们把代码添加到function.php后,我们可以在后台管理页面看到如下页面:

wordpress-自定义文章类型

点击添加新事件(Add New)你可以像发表一般文章一样来添加新的事情,如下图:

wordpress-自定义文章类型

3.显示自定义文章类型

添加完事件之后发布,然后编辑事件,点击View Event(查看事件),你就可以看到事件就像正常文章一样显示了。

wordpress-自定义文章类型

当然我们在wordpress自定义文章类型是因为它们和一般的文章是不一样的。wordpress内部有一个很好的机制用来自定义文章类型的外观,如果你曾经做过wordpress主题,应该知道,一般文章(post)对应的模板文件是single.php。wordpress3.0允许你用自定义的模板文件(如single-event.php)来定制我们新的文章类型的外观。

为了简便起见,我们将single.php复制并命名为single-event.php,为了演示看是否生效,我们对代码做一些改动。

原代码

<h1 class="entry-title"><?php the_title(); ?></h1>

新代码

<h1 class="entry-title">Event: <?php the_title(); ?></h1>

回到刚才的事件页面,我们发现标题已经发生了改变。有需要的话我们可以进一步修改single-event.php文件。

wordpress-自定义文章类型

4.列出自定义文章类型

前面我们讲解如何创建、显示单个事件,但是如果我们需要像博客日志一样列出所有的事件应该如何操作?

这里有很多方法可以实现这个功能,一个通常使用的方法是通过Page Template(页面模板)来实现,这个方法如果使用几次后发现它并不难,只是需要的步骤多一点。

(1)首先复制一份page.php并将它命名为page-events.php。(可以在wordpress创建很多不同页面模板)。

(2)在page-events.php头部添加一下代码,这些代码告诉wordpress这是一个模板文件,以及这个模板文件的 相关信息。

<?php
/**
* Template Name: Events Template
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.0
*/
get_header(); ?>

(3)先用下面的代码来获取所有的事件文章.

<?php query_posts(array('post_type'=>'event')); ?>

(4)然后用wordpress loop的方法来显示出所有的事件文章。

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

这样我们就创建好了一个自定义的页面模板,接着创建一个Event页面来显示这些事件,进入wordpress后台的页面部分,创建一个新页面命名为Event,然后在页面属性的模板选项里,选择我们刚才创建的模板文件即可。发布完后,到网站查看这个页面,可以发现所有的事件文章都列在上面了。根据不同的主题,你可能需要修改导航栏的相关代码。

wordpress-自定义文章类型

通过修改page-events..php文件,我们可以自定义这个类型的文章的显示方式,比如为每个事件增加一个日历按钮或者只显示事件标题等。

总结

通过这个实例,我想你已经对自定义文章类型这个概念有一定的了解,并且知道如何在wordpress里创建、显示、列出自定义文章类型。

文章内容部分引用自:设计箱

上一篇:

下一篇:

在线评论

5 个评论

  1. 我晕,头痛。。。前面自定义的部分都ok,就是后面到了“4.列出自定义文章类型”的时候出错

    复制了page模板,也添加了那几行代码,创建新页面也成功,但就是打不开新页面

    “Parse error: syntax error, unexpected $end in………..on line xx”
    后面是新建的模板文件的最后一行行数

    网上搜说这种是语法错误,少了什么符号,不该结束

    但是我对比了其他页面模板文件,最后一行都是?>结尾的,应该没有错啊。。。
    求教大虾指点一二。。。谢先啊:)

    • 不一定就是最后一行的问题,你检查下其他地方,是不是缺少 { 或 } 符号,这些是成对出现才行。

  2. […] 通过这个实例,我想你已经对自定义文章类型这个概念有一定的了解,并且知道如何在wordpress里创建、显示、列出自定义文章类型。https://www.wpyou.com/wordpress-post-types.html […]

  3. 如何判断文章属于event这个类型?这个要怎么写!?

  4. 自定义文章页面不错,可以归类,请问是否可以在自定义页面添加这个类的共同属性,比如就类似产品的多选框

分页
在线客服
在线客服关闭
WPYOU官方微信

扫码关注官方微信