//不要なカテゴリペースを削除・必要な親カテゴリを追加
function redirect(){
$url = (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
$url = str_replace(home_url(), '', $url);
$url_array = explode("/", $url);
$flag1 = false;
foreach ($url_array as $key => $val){
if($val == "category"){
$flag1 = true;
unset($url_array[$key]);
}
}
$flag2 = false;
foreach ($url_array as $key => $val){
$category = get_category_by_slug($val);
// null チェック
if(!$category || is_wp_error($category)) {
continue;
}
$parent_id = $category->parent;
if($parent_id){
$parent = get_category($parent_id);
if($parent && !is_wp_error($parent)){
$parent_slug = $parent->slug;
// 見つからなかった場合のみ追加
if(array_search($parent_slug, $url_array, true) === false){
$flag2 = true;
array_unshift($url_array, $parent_slug);
}
}
}
}
$url_array = array_filter($url_array, 'strlen');
if($flag1 || $flag2){
$new_url = implode("/", $url_array);
wp_redirect( home_url().'/'.$new_url );
exit;
}
}
add_action( 'wp', 'redirect' );
まずは、お悩みをご相談ください
