Option #1
为每个类别添加一个主题文件,而不是为每个类别添加一个页面。您将创建一个名为
category-news.php
它将仅显示在/news/处的新闻类别,以及其他类别的文件,例如
category-other.php
将在/other/处为其他类别显示。然后只需在模板文件中放置您想要的任何内容。请注意,类别在WordPress中内置了一个“描述”,因此您可以在wp admin中编辑该部分,而无需在需要更改时始终编辑主题文件。
Option #2
或者,您可以创建一个名为
category.php
并按以下方式编码:
<?php
get_header();
// get the current category
$category = get_category(get_query_var(\'cat\'));
// get the page whose slug matches this category\'s slug
$page = get_page_by_path($category->slug);
// display the page title as an h1 ?>
<h1><?php echo $page->post_title; ?></h1><?php
// display the page content
echo $page->post_content;
get_footer();
?>
Option #3
或者,在你的主题中
functions.php
:
<?php
add_filter(\'request\', function(array $query_vars) {
// do nothing in wp-admin
if(is_admin()) {
return $query_vars;
}
// if the query is for a category
if(isset($query_vars[\'category_name\'])) {
// save the slug
$pagename = $query_vars[\'category_name\'];
// completely replace the query with a page query
$query_vars = array(\'pagename\' => "$pagename");
}
return $query_vars;
});
?>
如果选择选项2或3,结果是相同的-WP将查找具有与类别slug匹配的slug的页面。然后,您可以在每个页面中包含您想要的任何内容,它将显示在类别中。您可能还希望在该类别中包含一个提要栏或其他一些帖子列表,以便人们能够从该类别转到某个单独的帖子。使用选项#2,您可以在中添加“显示其他帖子”代码
category.php
. 使用选项#3,您需要创建自定义页面模板(示例
tpl-category.php
) 并将其应用于每一页。