发展体育事业的意义:实例讲解如何在wordpress内自定义文章类型 | 设计箱
来源:百度文库 编辑:偶看新闻 时间:2024/04/29 20:57:56
实例讲解如何在wordpress内自定义文章类型
在这篇教程里我们以创建“事件(Event)”的文章类型为例,讲解如何在wordpress创建和使用自定义文章类型。
wordpress3.0最能人期待的功能之一就是可以在wordpress内自定义文章类型,这样可以将一些特定的内容按照自定义的类型组织起来,这个功能让wordpress从一个博客程序变成强大的CMS。
1.什么是自定义文章类型
如果你使用过wordpress,你应该比较熟悉wordpress的两种文章类型:Post(文章)和Page(页面),用wordpress3.0之前的版本搭建的网站的文章,大多属于这两种类型。Post一般作为经常更新的文章使用(如博客日志),Page一般作为静态页面使用(如网站的关于和联系页面)。
但是偶尔网站要显示一些特殊的内容,这涉及到自定义文章类型,假设我们要创建一个页面,用来记录一些事件(Event),比如个人生日、假日、会议日期等等。在下面的教程里,为了使代码统一,我们使用了wordpress3.0的默认主题。不过,这些技术同样适用于其他主题。
2.创建自定义文章类型
幸运的是在wordpress创建自定义文章类型不是什么难事,让我们先看看下面的代码:
帮助0102030405060708091011121314151617181920212223242526add_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
)
);
}
将上面的代码粘贴到主题文件夹的functions.php中,下面简单讲解一下上面的代码。
add_action告诉wordpress初始化时调用函数create_events
$label数组告诉wordpress如何显示这个文章类型的相关信息
$supports数组告诉wordpress这个文章类型可以支持什么(比如文章摘要excerpt)
register_post_type就是在wordpress注册这个新的文章类型,这个函数有很多选项可用,具体可以参阅相关文章。
一旦我们把代码添加到function.php后,我们可以在后台管理页面看到如下页面:
点击添加新事件(Add New)你可以像发表一般文章一样来添加新的事情,如下图:
3.显示自定义文章类型
添加完事件之后发布,然后编辑事件,点击View Event(查看事件),你就可以看到事件就像正常文章一样显示了。
当然我们在wordpress自定义文章类型是因为它们和一般的文章是不一样的。wordpress内部有一个很好的机制用来自定义文章类型的外观,如果你曾经做过wordpress主题,应该知道,一般文章(post)对应的模板文件是single.php。wordpress3.0允许你用自定义的模板文件(如single-event.php)来定制我们新的文章类型的外观。
为了简便起见,我们将single.php复制并命名为single-event.php,为了演示看是否生效,我们对代码做一些改动。
原代码:
帮助1<
h1
class
=
"entry-title"
>
php
the_title(); ?>
h1
>
新代码:
帮助1<
h1
class
=
"entry-title"
>Event:
php
the_title(); ?>
h1
>
回到刚才的事件页面,我们发现标题已经发生了改变。有需要的话我们可以进一步修改single-event.php文件。
4.列出自定义文章类型
前面我们讲解如何创建、显示单个事件,但是如果我们需要像博客日志一样列出所有的事件应该如何操作?
这里有很多方法可以实现这个功能,一个通常使用的方法是通过Page Template(页面模板)来实现,这个方法如果使用几次后发现它并不难,只是需要的步骤多一点。
(1)首先复制一份page.php并将它命名为page-events.php。(可以在wordpress创建很多不同页面模板)。
(2)在page-events.php头部添加一下代码,这些代码告诉wordpress这是一个模板文件,以及这个模板文件的 相关信息。
帮助123456789/**
* Template Name: Events Template
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.0
*/
get_header(); ?>
(3)先用下面的代码来获取所有的事件文章.
帮助1array
(
'post_type'
=>
'event'
)); ?>
(4)然后用wordpress loop的方法来显示出所有的事件文章。
帮助1if
( have_posts() )
while
( have_posts() ) : the_post(); ?>
这样我们就创建好了一个自定义的页面模板,接着创建一个Event页面来显示这些事件,进入wordpress后台的页面部分,创建一个新页面命名为Event,然后在页面属性的模板选项里,选择我们刚才创建的模板文件即可。发布完后,到网站查看这个页面,可以发现所有的事件文章都列在上面了。根据不同的主题,你可能需要修改导航栏的相关代码。
通过修改page-events..php文件,我们可以自定义这个类型的文章的显示方式,比如为每个事件增加一个日历按钮或者只显示事件标题等。
总结
通过这个实例,我想你已经对自定义文章类型这个概念有一定的了解,并且知道如何在wordpress里创建、显示、列出自定义文章类型。如果你觉得操作这些代码对你有难度,或者你对制作wordpress主题不是很了解,也可以通过插件的形式来自定义文章类型,比如Custom Post Type UI。