admin管理员组文章数量:1391991
How to add dot(.
) in post slugs?
In our blog, we are writing about websites and would like to use their exact address as slug like this:
ourdomain/example1
But dots are either removed when a post is saved, or WordPress doesn't find the post when we successfully add one.
Is there any option available?
How to add dot(.
) in post slugs?
In our blog, we are writing about websites and would like to use their exact address as slug like this:
ourdomain/example1
But dots are either removed when a post is saved, or WordPress doesn't find the post when we successfully add one.
Is there any option available?
Share Improve this question edited Jul 5, 2016 at 5:59 fuxia♦ 107k39 gold badges255 silver badges459 bronze badges asked Jul 5, 2016 at 4:56 bhvbhv 1631 silver badge10 bronze badges 2- Can you share more specific url – Suyash Jain Commented Jul 5, 2016 at 5:03
- It would be better if u don't change in permalinks structure for that! Individualy changnging on certain pages would be better. And that can be done with this plugin wordpress/plugins/custom-permalinks This plugin will do the trick for you... You can change the url individually on pages/posts via this plugin. But keep checking for non plugin solution :) – Rishabh Commented Jul 5, 2016 at 7:28
2 Answers
Reset to default 3WordPress runs slugs through its sanitize_title_with_dashes()
filter function which replaces dots with dashes. Unfortunately the function doesn't give you any control over that or any ability to change what characters are stripped or replaced.
What we can do however is remove that filter and add our own version of it with a couple of modifications:
remove_filter( 'sanitize_title', 'sanitize_title_with_dashes', 10 );
add_filter( 'sanitize_title', 'wpse231448_sanitize_title_with_dashes', 10, 3 );
function wpse231448_sanitize_title_with_dashes( $title, $raw_title = '', $context = 'display' ) {
$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);
if (seems_utf8($title)) {
if (function_exists('mb_strtolower')) {
$title = mb_strtolower($title, 'UTF-8');
}
$title = utf8_uri_encode($title, 200);
}
$title = strtolower($title);
if ( 'save' == $context ) {
// Convert nbsp, ndash and mdash to hyphens
$title = str_replace( array( '%c2%a0', '%e2%80%93', '%e2%80%94' ), '-', $title );
// Convert nbsp, ndash and mdash HTML entities to hyphens
$title = str_replace( array( ' ', ' ', '–', '–', '—', '—' ), '-', $title );
// Strip these characters entirely
$title = str_replace( array(
// iexcl and iquest
'%c2%a1', '%c2%bf',
// angle quotes
'%c2%ab', '%c2%bb', '%e2%80%b9', '%e2%80%ba',
// curly quotes
'%e2%80%98', '%e2%80%99', '%e2%80%9c', '%e2%80%9d',
'%e2%80%9a', '%e2%80%9b', '%e2%80%9e', '%e2%80%9f',
// copy, reg, deg, hellip and trade
'%c2%a9', '%c2%ae', '%c2%b0', '%e2%80%a6', '%e2%84%a2',
// acute accents
'%c2%b4', '%cb%8a', '%cc%81', '%cd%81',
// grave accent, macron, caron
'%cc%80', '%cc%84', '%cc%8c',
), '', $title );
// Convert times to x
$title = str_replace( '%c3%97', 'x', $title );
}
$title = preg_replace('/&.+?;/', '', $title); // kill entities
// WPSE-231448: Commented out this line below to stop dots being replaced by dashes.
//$title = str_replace('.', '-', $title);
// WPSE-231448: Add the dot to the list of characters NOT to be stripped.
$title = preg_replace('/[^%a-z0-9 _\-\.]/', '', $title);
$title = preg_replace('/\s+/', '-', $title);
$title = preg_replace('|-+|', '-', $title);
$title = trim($title, '-');
return $title;
}
The lines I edited are commented with a "WPSE-231448" - First I commented out the line which does a str_replace()
and replaces dots with dashes, then I added the dot to the list of characters to NOT be replaced in the preg_replace()
function below that.
Please note that I have not tested this with pagination or anything like that, it simply stops dots being stripped from slugs on the front/backend and any issues that may arise from that will need to be handled accordingly.
PLUGIN: we can use the following plugin https://wordpress/plugins/permalink-manager/ this plugins helped me if you want to edit some of the posts.
本文标签: url rewritingHow to add dot(quotquot) in post slug
版权声明:本文标题:url rewriting - How to add dot(".") in post slug 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744682284a2619484.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论