怎样自界说 WordPress 附件的牢靠链接

时间:2014-01-26所属栏目: WordPress教程 来源: 热度:

最近在事变中想操作二级域名作为一个资料站来搭建一个 WordPress 博客站,既能记录事变履历细节又能实现第三方资源挪用。这样我就有这样的需求,只管简化 WordPress 上传的图片牢靠链接地点。

在默认环境下 WordPress 的附件的永世链接为,http://日记链接/attachment/attachment-name/,这样显得太长欠悦目,假如我们想界说为:http://siteurl/media/media-id/,怎么处理赏罚呢?

可以将以下代码复制到当前主题的 functions.php 即可实现:


/*
Plugin Name:自界说附件的牢靠链接
Plugin URI: http://blog.wpjam.com/m/custom-attachment-permalink/
Description: 将附件的牢靠链接配置为:http://siteurl/media/media-id/
Version: 0.1
Author: Denis
Author URI: http://wpjam.com
*/
//配置附件的牢靠链接
add_filter('attachment_link','wpjam_attachment_link',10,2);
function wpjam_attachment_link($link,$post_id){
    return home_url('/media/'.$post_id.'/');
}

//配置附件的 rewrite 法则
add_action('generate_rewrite_rules', 'wpjam_generate_rewrite_rules');
function meitui_generate_rewrite_rules($wp_rewrite){

    $wp_rewrite->rules = wpjam_remove_rewrite_rules($wp_rewrite->rules); 
    $wp_rewrite->extra_rules_top = wpjam_remove_rewrite_rules($wp_rewrite->extra_rules_top); 

    $new_rules = array();
    $new_rules['media/([0-9]+)/?$'] = 'index.php?attachment_id=$matches[1]';
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}

//删除附件原本的 rewrite 法则
function wpjam_remove_rewrite_rules($rules){
    foreach ($rules as $key => $value) {
        if( strpos($value, 'attachment')    !== false ){
            unset($rules[$key]);
        }
    }
    return $rules;
}

标签:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)