构建WordPress永久链接:预建站添加WordPress博客页面技术问询
配置WordPress永久链接实现博客列表与文章页跳转
嘿,看起来你已经搞定了博客列表的循环分页,现在就差把永久链接配置好,让标题能跳转到单篇文章,同时分页链接也正常工作对吧?我给你一步步讲怎么弄:
第一步:后台设置永久链接结构
首先得在WordPress后台调整永久链接的全局设置,这是基础:
- 登录你的WordPress后台,进入「设置」->「永久链接」
- 推荐选择「自定义结构」,输入适合你博客的格式,比如
/blog/%postname%/—— 这样单篇文章的URL会是你的域名/blog/文章标题/,列表页的分页URL会是你的域名/blog/page/2/这种,结构清晰还利于SEO - 选好后点击「保存更改」,WordPress会自动生成对应的重写规则(如果服务器支持的话)
第二步:在循环中输出正确的文章标题链接
你已经有了列表循环的代码,现在只要在循环里把文章标题包裹上正确的链接就行:
在循环的文章标题部分替换成这样的代码:
<h2 class="post-title"> <a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a> </h2>
或者更简洁的写法,直接用the_permalink()函数自动输出链接:
<h2 class="post-title"> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </h2>
get_permalink()会根据你刚才设置的永久链接结构,生成当前文章的完整URL,点击后就能直接跳转到单篇文章页面。
第三步:确保分页链接正常工作
你的循环里已经用到了paged参数,现在要让分页的「上一页/下一页」或者数字分页链接也符合永久链接结构,推荐用WordPress自带的paginate_links()函数:
在你的循环结束后(也就是<?php endwhile; ?>之后)添加这段代码:
<?php // 获取当前查询的总页数 $total_pages = $wp_query->max_num_pages; if ($total_pages > 1) { $current_page = max(1, get_query_var('paged')); echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%/', // 这里要和你设置的永久链接结构匹配 'current' => $current_page, 'total' => $total_pages, 'prev_text' => '上一页', 'next_text' => '下一页' )); } ?>
这里的format参数要和你后台设置的分页URL格式对应,比如你后台设置的自定义结构是/blog/%postname%/,那分页URL就会自动生成为/blog/page/2/,完全匹配你的永久链接规则。
一些注意事项
- 如果你用的是Apache服务器,要确保根目录的
.htaccess文件有WordPress自动生成的重写规则(保存永久链接设置后会自动添加,如果没有的话可以手动复制后台给出的规则) - 如果你用的是Nginx服务器,需要在Nginx配置文件里添加对应的重写规则,比如:
location / { try_files $uri $uri/ /index.php?$args; } - 确保你的主题模板里有
wp_head()函数(一般在header.php里),WordPress需要这个函数来输出永久链接的相关rel规则,保证链接的正确性
内容的提问来源于stack exchange,提问作者ThePiedPhper
相关产品推荐
相关产品推荐

