パーマリンク設定を変えました
スラッグ考えるのもめんどくさくなったのでシンプルにpost_idのみでやろうと思いまして。
とはいえその前まで使っていたURLでアクセスしてくる人はいるので、postnameの入ったURLから現在のURLに飛ばさないといけないわけで。
ちなみに前の形式は、/year/month/day/postname.html
ちょっと冗長でしたかね。
[php]
$postname = basename(get_permalink());
if(0===preg_match(‘/^[0-9]+\.html$/’,$postname))
{
$args=array(
‘name’ => str_replace(‘.html’,”,basename(get_permalink())),
‘post_type’ => ‘post’,
‘post_status’ => ‘publish’,
‘numberposts’ => 1
);
$found_posts = get_posts($args);
if( $found_posts )
{
$id = $found_posts[0]->ID;
}else{
$id = null;
}
if(!is_null($id))
{
wp_safe_redirect(get_permalink( $id ),301);
}
}
[/php]
こんな感じ。
固定ページだけとかならもっと簡単にやれるみたいなんですが、投稿ページなので回りくどい感じですかね。
WordPress:スラッグからURL(URI)を取得する方法
を参考にいたしました。