前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WordPress 技巧:自定义附件的固定链接

WordPress 技巧:自定义附件的固定链接

作者头像
Denis
发布2023-04-15 14:24:07
4670
发布2023-04-15 14:24:07
举报
文章被收录于专栏:WordPress果酱WordPress果酱

在默认情况下 WordPress 的附件的永久链接为,http://日志链接/attachment/attachment-name/,这样显得太长不好看,如果我们想定义为:http://siteurl/media/media-id/,怎么处理呢?可以将以下代码复制到当前主题的 functions.php 即可实现:

代码语言:javascript
复制
<?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;
}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档