在一些国外主题中,经常能看到除了能添加普通文章,还能添加类似产品、下载。其实这些都是“自定义文章类型”的功能。它是WordPress自3.0版本以后新增的一个很实用的特色功能。WordPress内置的两种文章类型:Post(文章)和Page(页面),Post一般作为日志使用,Page就作为静态页面。而且不光可以添加自定义文章类型,还可以设置不同文章类型的诸多属性。

创建自定义文章类型

1.通过插件实现

使用Custom Post Type UI插件可以非常简便地管理添加的文章类型。使用方法略,可以自行google,baidu。

2.手动添加

在WordPress官方有非常详细的说明文档,可以先参考下官方的介绍 Custom Post Types

现在以创建Theme文章类型为例, 可能包括主题的作者,主题的演示页属性等。

首先,在主题包的functions.php文件中增加代码启用该功能:

add_action( 'init', 'create_themes' );

function create_themes() {
    $labels = array(
        'name' => __('Themes'),
        'singular_name' => __('Theme'),
        'add_new' => __('Add New'),
        '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'),
    );
    $supports = array('title', 'editor', 'custom-fields', 'revisions', 'excerpt');
    register_post_type( 'theme',array(
        'labels' => $labels,
        'public' => true,
        'supports' => $supports
        )
    );
}

$label数组中是文章类型的相关信息

$supports数组是配置文章类型支持的功能

resister_post_type就是注册文章类型

上述代码完成之后,就可以在后台管理看到效果,能够和普通的Post文章一样发表。

显示自定义文章

因为自定义文章类型的原因,index首页和single页面无法显示自定义文章,不过wordpress3.0开始可以使用自定义的模版文件(如single-theme.php),这样就可以对自定义文章的页面进行定制。

另外在index首页的时候,默认是无法显示自定义文章的,当然在Page页面也是不行的,不过在页面中我们依然可以使用page-theme.php这样的文件来展示。

在Page页面中要显示属于Theme类型的日志,需要在下面代码:

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

添加:

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

同样在index.php首页,如果需要显示Post和Theme类型的两种文章,那么以上的代码要稍微修改下:

 <?php query_posts(array('post_type'=>array('post','theme')));?>