LoginSignup
0
1

More than 5 years have passed since last update.

WordpressのURLから半角英数以外を取り除くフィルター

Last updated at Posted at 2016-12-05

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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1