- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章WordPress分页伪静态加html后缀由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
问题 。
当文章有分页的时候,wordpress生成的永久链接是page.html/2的形式,前面一段是文章的$link,后面的数字代表分页$number。那么问题来了,挖掘……不对,从逻辑上讲这到底是个html文件还是一个目录呢?
难看 。
在.html这个静态文件后面加上一个/和数字简直令人摸不着头脑,这还只是其次,重要的是,我发现搜索引擎根本不收录这样奇怪的链接,这个真是无法接受,我写的东西首尾都很重要,不能因为分个页就被忽视了.
不收录 。
拿这篇文章来看,搜索文章第一页的内容,谷歌收录了:
搜索文章第二页和第三页的内容,根本没有收录:
解决方案 。
于是我决定diy wordpress的链接生成与解析规则.
思路 。
利用filter wp_link_pages_link 将分页链接/123456重写为page-[123456].html.
利用wordpress或者服务器的rewriterule将page-[123456].html还原为/123456 。
添加钩子redirect_canonical,防止wordpress从page-[123456].html到/123456的强行跳转.
生成分页html后缀链接 。
给wordpress主题加入:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
class
rewrite_inner_page_links
{
var
$separator
;
var
$post_rule
;
function
__construct()
{
$this
->separator =
'/page-'
;
// (.+?)/([^/]+).html(/[0-9]+)?/?
$this
->post_rule =
'(.+?)/([^/]+)('
.
$this
->separator .
'([0-9]+))+.html/?$'
;
if
(!is_admin() || defined(
'doing_ajax'
)) :
add_filter(
'wp_link_pages_link'
,
array
(
$this
,
'inner_page_link_format'
), 10, 2);
// for inner pages
add_filter(
'redirect_canonical'
,
array
(
$this
,
'cancel_redirect_for_paged_posts'
), 10, 2);
endif
;
if
(is_admin()) :
add_filter(
'rewrite_rules_array'
,
array
(
$this
,
'pagelink_rewrite_rules'
));
endif
;
}
/**
* 修改post分页链接的格式
* @param string $link
* @param int $number
* @return string
*/
function
inner_page_link_format(
$link
,
$number
)
{
if
(
$number
> 1)
{
if
(preg_match(
'%<a href=".*\.html/\d*"%'
,
$link
))
{
$link
= preg_replace(
"%(\.html)/(\d*)%"
,
$this
->separator .
"$2$1"
,
$link
);
}
}
return
$link
;
}
/**
* 为新的链接格式增加重定向规则,移除原始分页链接的重定向规则,防止重复收录
*
* 访问原始链接将返回404
* @param array $rules
* @return array
*/
function
pagelink_rewrite_rules(
$rules
)
{
$new_rule
[
$this
->post_rule] =
'index.php?name=$matches[2]&page=$matches[4]'
;
return
$new_rule
+
$rules
;
}
/**
* 禁止wordpress将页面分页链接跳转到原来的格式
* @param string $redirect_url
* @param string $requested_url
* @return bool
*/
function
cancel_redirect_for_paged_posts(
$redirect_url
,
$requested_url
)
{
global
$wp_query
;
if
(is_single() &&
$wp_query
->get(
'page'
) > 1)
{
return
false;
}
return
true;
}
}
new
rewrite_inner_page_links();
|
这样就得到了将类似http://www.domain.com/program/tokyodaigaku.html/2/ 的分页链接转化为形如 http://www.domain.com/program/tokyodaigaku/page-2.html 的链接.
注意,我的伪静态规则是/%category%/%postname%.html,如果你的规则不同,请自行修改代码或者伪静态规则.
重写url规则 。
如果不重写规则的话,wordpress是不认识这个链接的,它以为有个目录叫tokyodaigaku,里面有篇文章叫page-2.html,结果会给出一个无情的404错误:
利用服务器的重写规则 。
如果是sae的话,在config.yaml的第一行加入:
。
。
。
如果不是的话,可以利用wordpress自带的rewrite_rules:
登陆后台——设置——固定链接:
什么也不用填,直接保存更改即可。代码会自动在数据库中硬性加入一条规则:
。
。
最终效果 。
无论是用http://www.domain.com/program/tokyodaigaku.html/2/ 还是 http://www.domain.com/program/tokyodaigaku/page-2.html,都可以访问第二页.
具体效果放在第二页,顺便测试一下分页后缀效果 。
好了,基本功能已经实现了,小伙伴们是否明白了呢,如有问题,请留言 。
最后此篇关于WordPress分页伪静态加html后缀的文章就讲到这里了,如果你想了解更多关于WordPress分页伪静态加html后缀的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试将我所有的东西从 videomarathon.com/dk 导入到 videomarathon.com/se(帖子等) 我正在使用 wordpress 导入器。 上传导出的文件时,它向我显示
Azure WordPress 和 Azure 可扩展 WordPress 之间有什么区别?除了可扩展的 WordPress 允许您选择 azure 存储之外,我看不出有什么区别 最佳答案 基本区别:
我目前正在一个与体育相关的 wordpress 网站上工作。我所有的帖子都在同一个地方,分为足球、网球等。我想改变我博客的结构,比如足球,应该是domain.com/football对于网球,应该是
Wordpress 3 有一个漂亮的 TinyMCE 实现,我相信它比它所基于的原始 TinyMCE 运行得流畅得多。 很棒的事情:- HTML/源代码 View 作为选项卡而不是弹出窗口- 有吸引力
我在 codex.wordpress.org 和developer.wordpress.org 上看到了 WordPress 开发人员文档。他们都有关于插件和主题的文档。由于我不了解 wordpres
我有自定义帖子循环,我想在底部添加“查看全部”链接,该链接应指向包含该类型所有帖子的页面。 我能想到的唯一解决方案是为帖子类型创建一个模板页面并硬编码指向它的链接,但我希望有一个更优雅和动态的解决方案
我正在尝试使用类在 WordPress 中创建自定义 REST API 端点。我也用传统方法做了同样的事情——效果很好。但是,使用类时出现错误 The handler for the route is
我是 WordPress 的新手,正在尝试在主页的一部分中使用一些自定义代码,该部分旨在显示三个类别(白皮书、文章和帖子)中每个类别的 #1 趋势帖子.代码只是显示(据我所知)最近的 3 个帖子,无论
我正在尝试在 wordpress 中设置搜索页面的样式。在 search.php 中,我可以设置大部分页面的样式,但随后的以下语句(我从未经编辑的原始页面中获得)生成了内容。
我希望得到一些帮助来解决一些让我发疯的编码问题。我更喜欢在我的 wordpress 帖子标题中写“&”而不是“and”。但是写出&符号会破坏我们的 twitter、facebook 和 google-
是否可以只重写一个类别? 我有一个类别“ 照片”,并且只针对这个类别。 我只想从/category/photos重写它至 /photos 最佳答案 您可以使用 WP Rewrite API 来实现。
我有一个托管在 www.example.com 上的网站,它是一个 Bitnami 应用程序。 我想在 www.example.com/blog 上可以访问的同一台服务器上安装另一个 bitnami
我一直在做一些测试。注意:这仅在Safari浏览器中发生。 我关闭了所有插件并激活了主题二十(而不是我的Catch Box子主题)。在此配置下,除了顶部菜单中的“主页”选项卡(在Safari中显示如下
我是一名 php 开发人员,目前正在开发一个 CMS/博客系统。我想添加一个永久链接系统,比如 WordPress。我很好奇 WordPress 如何解析永久链接。例如,如何获取 id 这样的数据和
有谁知道Wordpress有多安全? 我不知道如何定义“有多安全”。但与其他CMS系统相比,它的安全性如何? 更新: 详细说明我的项目。 我会有很多用户注册。登录后,他们将可以访问我正在开发的插件。大
是否可以授予编辑者管理主题小部件的功能?默认情况下,只有管理员可以这样做。 谢谢, 乔恩 最佳答案 恐怕您将需要使用插件来实现此目的,因为更改窗口小部件是switch_themes capabilit
我有一个在服务器上运行的多站点 wordpress,我想将我的站点转移到另一台服务器上。我通过 filezilla ftp 下载了完整的文件备份还导出了完整的数据库。 现在我将此备份导入到新服务器 (
我使用通用 HTML 标签在 WordPress 插件中创建了一个表单。我刚刚用 echo 测试了文本框提交的值,它工作正常。提交表单后,我需要在同一页面中重定向或显示成功/失败消息。表单提交后如何显
我想启用 wordpress 站点的调试日志,在 wp-config.php 中添加以下设置 /* WordPress debug mode for developers. */ define('WP
是否可以仅在前端(无需编辑 .mo/.po 文件)更改我的 wordpress 安装(WP 3.0 Multisite)的语言? 在此处更改此选项: 也会在后端更改我的语言。 有任何想法吗? 感谢您的
我是一名优秀的程序员,十分优秀!