WordpressでURLにスラッグを使うように設定した場合、URLが
http://www.ore-no-homepage.com/現場に混乱を招いた件について謝罪してください
みたいになるの、色んな意味で苦痛なので、半角英数に絞りたいじゃないですか。
そういうときのためのフィルター書きましたんで、使ってください。functions.php
とかにぶっこめば使えます。
function generate_friendly_slug( $str )
{
$slug = mb_convert_kana($str, 'as');//全角英数を半角に変換
$slug = preg_replace('/[ ]/', '-', $slug);//半角スペースを、「-」に変換する
$slug = preg_replace('/[^0-9a-zA-Z\-_]/', '', $slug);//半角英数以外の文字を省く
if (!$slug) $slug = uniqid();//半角英数が含まれていない場合、ランダムな文字列を生成する
return $slug;
}
add_filter('sanitize_title', 'generate_friendly_slug', 9);
すべてが全角だった場合は、ランダムな文字列に。
Before:
http://www.ore-no-homepage.com/現場に混乱を招いた件について謝罪してください
↓
After:
http://www.ore-no-homepage.com/584540c50e36c
一つでも英数文字が含まれる場合は、それがスラッグに。
Before:
http://www.ore-no-homepage.com/私がFTPでソースをアップロードした件でしょうか?
↓
After:
http://www.ore-no-homepage.com/ftp