wordpress附件页面自定义伪静态的方法
2013-08-17 09:08
281 查看
很多朋友问小V维7维3的附件下载页面是怎么做的,其实呢有很多种方法来实现附件下载页,之前是写了个G-download下载页面插件,后来小V觉得可以用更简单的方法实现,所以就是写一个php文件然后直接从数据库获取文件的下载链接,其实呢wordpress自带了附加页面只不过大多数主题里没有附件页面(attachment.php)的模板文件而已。
想了解附件页面的调用机制可以看看以下两篇文章:
wordpress主题开发教程手记:模板文件的结构讲解
wordpress主题开发教程手记:模板文件的调用机制
不过默认的附件页面伪静态链接是http://日志链接/attachment/attachment-name/ 这种链接又长又不美观那么该如何来修改附件页面的链接结构呢?我们可以使用functions.php定义一个rewrite规则,代码如下:
加上以上代码后附件页面的链接就成了http://siteurl/v7v3/media-id/ 这种形式的了,当然你也可以按要求修改成你需要的形式,然后配合自定义字段即可实现类似于v7v3下载页面的效果了。
想了解附件页面的调用机制可以看看以下两篇文章:
wordpress主题开发教程手记:模板文件的结构讲解
wordpress主题开发教程手记:模板文件的调用机制
不过默认的附件页面伪静态链接是http://日志链接/attachment/attachment-name/ 这种链接又长又不美观那么该如何来修改附件页面的链接结构呢?我们可以使用functions.php定义一个rewrite规则,代码如下:
//设置附件的固定链接 add_filter('attachment_link','v7v3_attachment_link',10,2); function v7v3_attachment_link($link,$post_id){ return home_url('/v7v3/'.$post_id.'/'); } //设置附件的 rewrite 规则 add_action('generate_rewrite_rules', 'v7v3_generate_rewrite_rules'); function v7v3_generate_rewrite_rules($wp_rewrite){ $wp_rewrite->rules = v7v3_remove_rewrite_rules($wp_rewrite->rules); $wp_rewrite->extra_rules_top = v7v3_remove_rewrite_rules($wp_rewrite->extra_rules_top); $new_rules = array(); $new_rules['v7v3/([0-9]+)/?$'] = 'index.php?attachment_id=$matches[1]'; $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; } //删除附件原来的 rewrite 规则 function v7v3_remove_rewrite_rules($rules){ foreach ($rules as $key => $value) { if( strpos($value, 'attachment') !== false ){ unset($rules[$key]); } } return $rules; }(PS:代码修改自水煮鱼)
加上以上代码后附件页面的链接就成了http://siteurl/v7v3/media-id/ 这种形式的了,当然你也可以按要求修改成你需要的形式,然后配合自定义字段即可实现类似于v7v3下载页面的效果了。
相关文章推荐
- wordpress 设置静态后标签中中文链接找不到页面的解决方法
- Wordpress下创建自定义新页面的方法
- sharepoint 2013 自定义列表查看页面附件打开新页面方法 dispform attachments open new page
- Wordpress深度自定义tag页面Permalink的方法
- Wordpress 4.4.0+ 自定义页面title标签的方法
- wordpress 设置静态后标签中中文链接找不到页面的解决方法
- Nginx设置静态页面压缩和缓存过期时间的方法
- WordPress:自定义页面模板
- 建立自定义的WordPress数据库错误页面
- PHP生成静态HTML页面最简单方法示例
- extjs6 基础组件扩展和自定义组件封装--04静态js方法的设计思想
- wordpress上传中文附件乱码解决方法
- WordPress中添加自定义评论表情包的方法
- 非常好的网站生成静态页面防采集策略与方法
- JS 为页面对象新增自定义方法
- Android多页面切换,保持Java中Socket长连接之静态方法
- vs2008 vsess 建立的listDefinition 自定义NewForm.aspx等页面的方法
- NGINX自定义404页面设置方法
- 静态页面HTML绑定动态数据.aspx,用document.write的方法!
- 禁用页面缓存的几种方法(静态和动态)