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

一般而言,WordPress本身会对英语用户的体验进行优化,例如默认模板的分隔符永远都是“|”,因为英文单词以空格空开,要区分两个单

一般而言,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的格式化,同样,它也对分类、标签等的别名起作用。

WordPress主题下载,WordPress免费主题下载,网站源码模板下载


下载说明:
1. 本站所有资源来源于网络和用户上传,如有侵权请联系站长
2. 本站分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,商用请支持正版!不得违反国家法律,否则后果自负!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

本站的资源均来自于互联网,仅为资源共享、学习参考之目的,其版权均归原作者及其网站所有,如有侵权请留言联系:admin,转转请注明出处:http://zhanmr.com/7069.htm

发表评论

电子邮件地址不会被公开。 必填项已用*标注