What I\'m trying to do:
在每个类别的类别页面上,我希望有一个该类别中所有帖子的列表,而不是让每个帖子与其他帖子分开显示(即在单独的容器中)。
列表中的每一项都应该包含该帖子的标题,标题也可以作为该帖子的链接。顺序应为逆时间顺序(即最新帖子首先显示,这是默认顺序)。清单最好是要点,但这并不重要。
我需要使用外部插件插入代码,而不是编辑原始文件。
What I tried that didn\'t work:
最初我尝试使用插件(
https://wordpress.org/plugins/list-category-posts/) 它使用一个快捷码输出所需的列表,然后将其放置在类别描述中。主要问题是,在描述中启用短代码会导致“我的主题”中出现错误,短代码的输出会复制到站点标题上方。(此外,我需要确保分类页面不显示任何帖子,只显示描述,我不知道该怎么做)。
Where I am now:
我已经设法让分类页面只显示标题。但是,每个标题都显示在单独的容器中。我不确定是否需要添加到此方法,或者完全尝试其他方法。
# Increase the number of posts per category page, so they all appear on one page:
function number_of_posts_on_category($query){
if ($query->is_category) {
$query->set(\'posts_per_page\', 150);
}
return $query;
}
add_filter(\'pre_get_posts\', \'number_of_posts_on_category\');
# Only display titles for posts on category pages:
function category_post_titles($content = false) {
if(is_category()) :
global $post;
$content = $post->the_title;
if($content) :
$content = apply_filters(\'the_title\', $content);
endif;
endif;
return $content;
}
add_filter(\'the_content\', \'category_post_titles\');
SO网友:dbeja
一种选择是使用category\\u template filter用插件中的另一个文件替换category template:
function change_category_template( $template ) {
$category_template = plugin_dir_path( __FILE__ ) . \'new-category.php\';
return $category_template;
}
add_filter( \'category_template\', \'change_category_template\', 999 );
因此,在新文件中,您可以获得所需的结构。
主要的问题是,您正在替换整个模板文件,如果您想要与任何主题一起使用的东西,那么要实现这一点就比较困难。