WordPress提供给我们一些基本的文章类型,比如文章(Post)和页面(Page)。但是如果我们想创建一些特定类型的文章,比如会议、课程、成果等等,该怎么办呢?
答案是:使用自定义文章类型(Custom Post Type)。自定义文章类型可以让你创建符合你网站需要的文章类型,从而更好地管理和组织你的内容。在这篇文章中,我将介绍如何使用post_type创建自定义文章类型。
post_type是什么?
首先,让我们来了解一下什么是post_type。话说WordPress的文章类型都有一个对应的post_type。我们在创建文章时,可以看到右侧“发布”面板中有一个“类型”选项,它对应的就是post_type。
WordPress默认提供的文章类型是post和page,它们对应的post_type分别是post和page。
可以在WordPress文档中查看所有默认文章类型及其对应的post_type。
为什么要使用自定义文章类型?
默认的文章类型不足以满足每个网站的需求,这时候我们就需要自定义文章类型了。
比如,假设你的网站是一个学术论文的收集平台,你可能需要创建一些自定义文章类型,比如:
论文(Paper)
报告(Report)
摘要(Abstract)
会议论文(Conference Proceedings)
这些自定义文章类型包含了不同的元素和特点,它们需要被独立存储,以便更好地管理。你可以定制这些文章类型的“发布”面板,设置它们的各项属性,如发布日期、标签、分类、作者等。
如何创建自定义文章类型?
在WordPress中,我们可以使用函数register_post_type()来创建自定义文章类型。使用注册函数时,我们需要指定一些必填项,一般包含以下内容:
slug
名称
支持的属性
支持的标签
支持的特色图像
这些必填项的具体用法如下:
slug参数指定了这个自定义文章类型的URL地址,以便于访问和检索。比如我们可以把“post_type”定义为“book”,然后在后台管理页面中就可以看到名为“书”的菜单。默认情况下,slug值和post_type名称相同。
名称参数定义了这个自定义文章类型的名称。默认情况下,它和post_type的名称相同。
参数支持的属性、标签和特色图像分别是:
supports参数指定了这个自定义文章类型的哪些属性是可用的。比如,我们可以使用编辑器、媒体上传、自定义作者和分类属性。
taxonomies参数指定了这个自定义文章类型可以使用的标签。比如,我们可以使用文章分类、状态、标签、特色图像等等。
这些属性都是可选项,可以根据需要添加或删除。这里有一些示例代码,这些示例代码展示了如何创建一个自定义文章类型。有一点要注意的是,这些代码应该放到主题或插件的functions.php文件中。
首先,让我们看一下最简单的示例,它创建了一种名为“书”的自定义文章类型。
add_action( 'init', 'create_book_post_type' );
function create_book_post_type() {
register_post_type( 'book',
array(
'labels' => array(
'name' => __( 'Books' ),
'singular_name' => __( 'Book' )
),
'public' => true,
'has_archive' => true,
)
);
}
在这个代码中,我们创建了一个名为“book”的自定义文章类型,它包含了两个标签:Books和Book。该代码中的两个标签都可以自定义。Words作为名称的变量可作为读者端展示;-post_type内的变量作为WordPress内部识别文章类型用。
这个代码只包含了必填项,其中的参数基本上是默认设置,不过这比什么都不填要好。
下面我们来看一个更复杂的示例,它包含了一些可选参数。这个示例创建了一种名为“recipe”的自定义文章类型。
add_action( 'init', 'create_recipe_post_type' );
function create_recipe_post_type() {
register_post_type( 'recipe',
array(
'labels' => array(
'name' => __( 'Recipes' ),
'singular_name' => __( 'Recipe' )
),
'public' => true,
'has_archive' => true,
'supports' => array(
'title',
'editor',
'excerpt',
'thumbnail',
'custom-fields',
'revisions',
),
'taxonomies' => array(
'category',
'post_tag',
'author',
),
'rewrite' => array(
'slug' => 'recipes',
'with_front' => false,
),
)
);
}
该代码带有一些额外的参数,比如:
supports参数指定了这个自定义文章类型可以使用的编辑器、标签、图像等。关于supports详细的介绍以及更多其他可选参数的使用说明,请参阅文档register_post_type()。
taxonomies参数指定了这个自定义文章类型可以使用的标签,比如分类、标签等。
最后,rewrite参数可以用来模拟URL结构,以便更好地支持搜索引擎(SEO)。它可以规定评论位和页面位的url地址。每创建一个post_type,都应该测试URL是否符合标准。
如何在模板中显示自定义文章类型?
我们已经创建了自定义文章类型,现在让我们来看看如何在模板中显示它们。
WordPress有一些基本的函数可以帮助我们显示文章内容,比如the_title()、the_content()、the_excerpt()等等。我们可以使用类似的函数来显示自定义文章类型。
假设我们已经创建了一种名为“book”的自定义文章类型,那么在模板中显示它的文章标题,只要使用the_title()函数即可。
如果你还需要显示其他信息,比如发布日期、作者、分类、关键字等等,你可以使用类似的函数。
下面是一些示例代码,展示了如何在模板中显示一种名为“book”的自定义文章类型。
这个代码展示了如何显示文章的标题,发布日期和作者。
$loop = new WP_Query( array( 'post_type' => 'book', 'posts_per_page' => 10 ) );
while ( $loop->have_posts() ) : $loop->the_post();
the_title();
echo '