自定义 URL Rewrite Rules 规则实现附件页面伪静态
文 / @UTHEME
关于WordPress附件链接实现伪静态的方法
为了让你更好地了解附件链接伪静态,本篇文章会详细讲解附件链接存在的问题以及如何处理伪静态规则。
WordPress默认附件链接的问题

WordPress默认的附件链接没有伪静态支持,这就限制了一些网站需要展示附件内容的需求。如果附件链接不做伪静态处理,链接看起来是这个样子的:`www.yoursite.com/?attachment_id=1336`。我们需要把链接显示成这个样子:`http://www.yoursite.com/doc/1336/`,下面我们来看一下附件链接伪静态的方法。
WordPress实现附件链接伪静态的方法
1、首先设置附件的固定链接
add_filter('attachment_link','wizhi_attachment_link',10,2);
function wizhi_attachment_link($link,$post_id){
return home_url('/doc/'.$post_id.'/');
}
2、然后设置伪静态规则
add_action('generate_rewrite_rules','wizhi_generate_rewrite_rules');
function wizhi_generate_rewrite_rules($wp_rewrite){
$wp_rewrite->rules = wizhi_remove_rewrite_rules($wp_rewrite->rules);
$wp_rewrite->extra_rules_top = wizhi_remove_rewrite_rules($wp_rewrite->extra_rules_top);
$new_rules = array();
$new_rules['doc/([0-9]+)/?$'] = 'index.php?attachment_id=$matches[1]';
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
3、最后删除原来的伪静态规则
function wizhi_remove_rewrite_rules($rules){
foreach($rules as $key => $value){
if(strpos($value,'attachment')!==false){
unset($rules[$key]);
}
}
return $rules;
}
以上的伪静态代码是通过WordPress的伪静态系统处理的,与网站运行的平台无关,只要你的主机支持伪静态功能,不管是Nginx还是Apache,都可以完美运行以上代码,实现附件链接伪静态。
设置好后,如果点击附件链接出现404错误,一般是因为伪静态规则有缓存,先在“设置>固定链接”里面把固定链接结构设置成默认的,以清除伪静态缓存规则缓存,然后再设置成文章名就可以了。
以上就是关于WordPress附件链接实现伪静态的方法的全面讲解。希望对你有所帮助。

相关文章
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
创建Vue组件详细教程 2023-09-10 00:23:17
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45
-
WordPress 6.3版本(2023年8月)性能提升了哪些? 2023-08-28 16:56:02
-
Astra 主题团队推出人工智能驱动的 WordPress 网站创建平台 – ZIPWP 2023-08-28 16:49:54
-
WordPress 宣布将为用户提供 100 年域名托管服务 2023-08-28 16:45:27
-
PHP判断if else 和 switch case的区别盘点 2023-07-29 15:11:11
-
详解WordPress独立站SEM中的OCPC方法(含百度推广OCPC与谷歌OCPC) 2023-07-19 08:01:30
-
WordPress的古腾堡全站编辑器site-editor.php介绍(附:site-editor.php启用代码) 2023-07-16 08:01:57
-
WordPress的Customize Partial功能最全介绍(含:demo代码) 2023-07-16 00:21:56