特定のカスタム投稿タイプをnoindexにする関数

WordPressではカスタム投稿を作成して、通常の投稿とは別の投稿一覧を作成することができます。

そんな任意につくったカスタム投稿のページをnoindexにしたい場合に使える関数をメモしておきたいと思います。

コードはこちら

// {myposttype}はindexしない
function myposttype_single_noindex($robots){ 
 
    // {myposttype}のプレビューで、 検索エンジンがサイトをインデックスしないようにするにチェックが入っていない場合は noindexを出力
    if (is_singular('myposttype') && get_option( 'blog_public' ) == 1){
        // max-image-preview:largeを除去
        remove_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
        return wp_robots_no_robots( $robots );
    }
    return $robots;
}
add_filter( 'wp_robots', 'myposttype_single_noindex' );

ここでは、{myposttype} という名前のカスタム投稿においてnoindexを出力するようにしてみました。

myposttypeの箇所をご自身のposttype名で置き換えていただければ動作すると思います。(細かなチェックはしてませんので、自己責任でお願いします。)