如何在WordPress编辑器中编辑文章(Posts)列表分页页面?
编辑WordPress文章列表分页页面的可行方法
一、用子主题改模板文件(首推)
- 别直接动父主题,先创建并激活子主题,不然主题更新后所有修改都会丢失。
- 找父主题里的文章列表模板,一般是
index.php、archive.php,部分主题会有专门的home.php。 - 把对应文件复制到子主题目录,再在子主题的这个文件里修改分页或列表内容:
- 修改分页样式:找到主题中调用分页的代码(比如
the_posts_pagination()),添加参数自定义,示例:the_posts_pagination( array( 'mid_size' => 2, 'prev_text' => __( '上一页', '你的主题文本域' ), 'next_text' => __( '下一页', '你的主题文本域' ), ) ); - 修改文章列表结构:调整循环部分的代码,比如修改文章标题、摘要、发布时间等内容的展示方式。
- 修改分页样式:找到主题中调用分页的代码(比如
二、自定义页面模板制作列表页
- 在子主题目录新建文件,比如
custom-post-list.php,开头先添加模板声明:<?php /* Template Name: 自定义文章列表分页页 */ get_header(); ?> - 然后在文件里编写自定义的文章循环和分页代码,示例:
<?php $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $args = array( 'post_type' => 'post', 'posts_per_page' => 10, 'paged' => $paged ); $custom_query = new WP_Query( $args ); if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); // 这里编写文章内容展示代码,比如标题、摘要 the_title( '<h2><a href="' . esc_url( get_permalink() ) . '">', '</a></h2>' ); the_excerpt(); endwhile; // 分页导航 the_posts_pagination( array( 'total' => $custom_query->max_num_pages, 'prev_text' => '← 上一页', 'next_text' => '下一页 →' ) ); wp_reset_postdata(); else : echo '<p>暂无文章</p>'; endif; ?> - 保存文件后,到WordPress后台新建页面,选择「自定义文章列表分页页」作为模板,发布后访问该页面即可。
三、用钩子修改内容(无需改动模板文件)
- 不想修改模板的话,可通过WordPress钩子调整分页或列表内容:
- 修改分页HTML结构:在子主题的
functions.php中添加代码:add_filter( 'navigation_markup_template', 'custom_pagination_template', 10, 2 ); function custom_pagination_template( $template, $class ) { // 自定义分页的HTML结构 return ' <nav class="navigation %1$s" role="navigation"> <h2 class="screen-reader-text">%2$s</h2> <div class="nav-links">%3$s</div> </nav>'; } - 修改文章摘要:用
the_excerpt钩子扩展内容,示例:add_filter( 'the_excerpt', 'custom_post_excerpt' ); function custom_post_excerpt( $excerpt ) { return $excerpt . '<p><a href="' . get_permalink() . '">阅读全文</a></p>'; }
- 修改分页HTML结构:在子主题的
四、用区块编辑器(Gutenberg)快速制作
- 新建一个页面,添加「查询」区块,设置查询类型为「文章」,调整每页显示数量、排序方式等参数。
- 在查询区块下方添加「分页」区块,即可生成带分页的文章列表页面。
- 需要调整样式的话,给区块添加自定义CSS类,到「外观→自定义→额外CSS」中编写样式即可。
内容的提问来源于stack exchange,提问作者Suraj shabd
相关产品推荐
相关产品推荐

