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;
 }

WordPress:カテゴリーページでカテゴリ情報を取得する

スラッグを取得したいというフォーラムのここを参考にして

https://ja.wordpress.org/support/topic/categoryphp%E3%81%A7%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B0%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%9F%E3%81%84/

カテゴリー表示の場合は、グローバル変数$catに表示しているカテゴリーのIDが入っているのでしたのコードで情報を取得できます。

“WordPress:カテゴリーページでカテゴリ情報を取得する” の続きを読む

WordPress:スラッグと同名ディレクトリを配置したい

WordPressのルートディレクトリにあるindex.php(先頭ファイル)をコピーして下記のように変更して設置したいディレクトリーに格納する

変更前index.php

/** Loads the WordPress Environment and Template */
require( dirname( FILE ) . '/wordpress/wp-blog-header.php' );

変更後index.php

/** Loads the WordPress Environment and Template */
require( '../wordpress/wp-blog-header.php' );

もしリダイレクトループになってしまったら
functions.phpに追記。

 remove_filter('template_redirect', 'redirect_canonical'); 

WordPress : メンテナンスモードが解除されないときの対処方法

WordPress で更新なんかに失敗したあと「現在メンテナンス中のため、しばらくの間ご利用いただけません」と表示がでて、サイトやブログが表示されなくなってしまいました。

その時の対処法をメモしておきます。

“WordPress : メンテナンスモードが解除されないときの対処方法” の続きを読む