ブラウザで記事ページを見たときのURL(パーマリンク)から子カテゴリーを削除する方法。
functions.phpに
/* 子カテゴリーをパーマリンクから非表示にしたい*/
//子カテゴリを非表示にするフィルタフック
add_filter( 'post_link', 'remove_children_category_slug', 10, 3 );
function remove_children_category_slug( $permalink, $post, $leavename ){
//カテゴリのIDを取得
$cats = get_the_category( $post->ID );
if ( $cats ) {
//ID順にソート
usort( $cats, '_usort_terms_by_ID' );
foreach( $cats as $cat ) {
//親カテゴリが存在するかチェック
if ( $cat->parent ) {
$parentcategory = explode(" ",get_category_parents( $cat, false, ' ', true ));
//配列から最上位のカテゴリを取得
$parentcat = $parentcategory[0];
} else {
//親がない場合はそのままスラッグを取得
$parentcat = $cat->slug;
}
}
}
//管理画面で設定したパーマリンクの設定に合わせる
$permalink = home_url()."/".$parentcat."/"."?p=". $post->ID .'/';
return $permalink;
}
コメントを残す