ワードプレスでスラッグにドット(.)を使う方法

WordPress

ワードプレスのサイトで.htmlのようにスラッグ(URL)にドット(.)を使うと、自動でハイフン(-)に変換されてしまいます。

これまで.htmlにしていたのを変えたくない!同じパーマリンクを使いたい!と思ったので、やり方調べてみたら…

ありました。子テーマの”function.php”に加えるだけ。ピリオドとしても使えるので便利。

自己責任でね。

remove_filter('sanitize_title', 'sanitize_title_with_dashes');
function sanitize_title_with_dots_and_dashes($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);
$title = remove_accents($title);
if (seems_utf8($title)) {
if (function_exists('mb_strtolower')) {
$title = mb_strtolower($title, 'UTF-8');
}
$title = utf8_uri_encode($title);
}
$title = strtolower($title);
$title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = preg_replace('/[^%a-z0-9 ._-]/', '', $title);
$title = preg_replace('/\s+/', '-', $title);
$title = preg_replace('|-+|', '-', $title);
$title = trim($title, '-');
$title = str_replace('-.-', '.', $title);
$title = str_replace('-.', '.', $title);
$title = str_replace('.-', '.', $title);
$title = preg_replace('|([^.])\.$|', '$1', $title);
$title = trim($title, '-'); // yes, again
return $title;
}
add_filter('sanitize_title', 'sanitize_title_with_dots_and_dashes'); ?>

All dots(.) in WordPress Permalink|stackoverflow