• 售前

  • 售后

热门帖子
入门百科

wordpress在postname中支持大写字母的方法

[复制链接]
十二音阶囤 显示全部楼层 发表于 2021-8-15 20:06:35 |阅读模式 打印 上一主题 下一主题
一样寻常而言,WordPress自己会对英语用户的体验举行优化,例如默认模板的分隔符永世都是“|”,由于英文单词以空格空开,要区分两个单词不大概用“-”,因此“|”是最好的选择。同样,为了让URL更符合欣赏器分析和用户的辨认,wordpress默认会将标题中的英文大写字母lower到小写。
然而对于中文网站来说,这或许不是一件很好的是,如果要在URL中使用中文,那么使用大写也是常有的,这里提供一种取消wordpress自动降级字母大写的方法。

复制代码代码如下:
remove_filter( 'sanitize_title', 'sanitize_title_with_dashes' );
add_filter( 'sanitize_title', 'use_capital_letter_in_slug' );
function use_capital_letter_in_slug($title) {
    $title = strip_tags($title);
    // Preserve escaped octets.
    $title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title);
    // Remove percent signs that are not part of an octet.
    $title = str_replace('%', '', $title);
    // Restore octets.
    $title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title);</p><p>    $title = remove_accents($title);
    if (seems_utf8($title)) {
        //if (function_exists('mb_strtolower')) {
        //    $title = mb_strtolower($title, 'UTF-8');
        //}
        $title = utf8_uri_encode($title, 200);
    }</p><p>    //$title = strtolower($title);
    $title = preg_replace('/&.+?;/', '', $title); // kill entities
    $title = str_replace('.', '-', $title);
    // Keep upper-case chars too!
    $title = preg_replace('/[^%a-zA-Z0-9 _-]/', '', $title);
    $title = preg_replace('/\s+/', '-', $title);
    $title = preg_replace('|-+|', '-', $title);
    $title = trim($title, '-');</p><p>    return $title;
}

将上面的代码拷贝到你的主题文件functions.php中,它即可取消wordpress对postname的格式化,同样,它也对分类、标签等的别名起作用。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作