WordPress:記事ページのパーマリンクから子カテゴリーを削除にする

ブラウザで記事ページを見たときの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;
 }

投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください