メンバー募集中!一緒に活動しませんか?

内部資料カテゴリーの仕様について

記事内に広告が含まれています。

サークルのメンバーのみが確認することを目的としたカテゴリーとして、投稿記事の中に内部資料カテゴリーを設けている。

井上春

春です。
ボカロ曲を投稿したのでボカロPを名乗ることができます。

井上春をフォローする

仕様

以下のような仕様になっている。

非表示になっている箇所

以下の箇所では、内部資料カテゴリーに分類されている記事は表示されない。

  • ホーム(更新順に記事が表示されているトップページ)
  • アーカイブ(カテゴリー、タグ、投稿者、日時などに基づいて投稿を集めたページ)
  • 検索
  • フィード

また、カテゴリーウィジェットでも「内部資料カテゴリー」自体が表示されない。

意図していない仕様

アーカイブウィジェットでは、内部資料カテゴリーの記事の数も合わせた数字が表示されてしまう。
(数字だけで、記事自体は表示されない)

またサイトマップには表示されてしまう。

注意

見つけにくいだけで、URLに直接アクセスすれば誰でも内容は見れてしまう。

また、Google等の検索サイトでは検索されてしまうこともある。
→各記事のSEO設定からnoindexを有効にすることで回避できるかも知れない。

なので外部に見られたら困るような内容はこのカテゴリーの記事でも書かないこと。

そういう場合はパスワード保護した上での公開や、login_user_onlyショートコードを使うと良いかも知れない。

コード

function.phpに以下のコードを記入することで上記の動作を実現している。

内部資料カテゴリーのIDは7

//カテゴリー「内部資料(ID…7)」をホーム、アーカイブ、検索、フィードから非表示に
function exclude_category_original( $query ) {
    if ( $query->is_home || $query->is_archive || $query->is_search || $query->is_feed ){
        $query->set( 'cat', '-7' );
    }
    return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_original' );

//カテゴリー「内部資料(ID…7)」をカテゴリーウィジェットから非表示に
function customize_category_list( $args ) {
    $args['exclude'] = 7;
    return $args;
}
add_filter( 'widget_categories_args', 'customize_category_list' );

それでも人気記事ウィジェットでは表示されてしまうため、以下のように除外カテゴリーを設定することで表示されないようにしている。

タイトルとURLをコピーしました