搜索
Hi~登录注册
查看: 1366|回复: 0

wordpress附件页面自定义伪静态的方法 |wordpress教程

[复制链接]

1892

主题

1899

帖子

6406

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6406
发表于 2015-4-15 15:19:13 | 显示全部楼层 |阅读模式
很多朋友问小V维7维3的附件下载页面是怎么做的,其实呢有很多种方法来实现附件下载页,之前是写了个G-download下载页面插件,后来小V觉得可以用更简单的方法实现,所以就是写一个php文件然后直接从数据库获取文件的下载链接,其实呢wordpress自带了附加页面只不过大多数主题里没有附件页面(attachment.php)的模板文件而已。 想了解附件页面的调用机制可以看看以下两篇文章:  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下载页面的效果了。
公众微信:idc5ahl
公众QQ:吾爱互联
关注公众微信,公众QQ每天领现金卡密
卡密介绍(http://www.5ahl.com/thread-2182-1-1.html
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 点我注册

快速回复 返回顶部 返回列表