web-dev-qa-db-ja.com

フロントエンドに表示されないようにカスタム投稿タイプを設定する方法

私は自分のサイトの1つでカスタムスライドタイプを画像スライドショーに使っています。私は公にqueryableをfalse/offに設定していますが、Googleが自分のサイトをクロールすると、スライドショーのURLに404エラーが表示されます。私はWordpressから公に問い合わせ可能にしても、それらのフロントエンドURLを作成しないだろうと思いました。

カスタム投稿タイプのフロントエンドURLとページを完全に無効にするにはどうすればよいですか。

編集

public => falsehas_archive => falsepublicaly_queryable => false、およびquery_var => falseを追加することで、Googleの404エラーを取り除くことができました。念のため、@ Norcrossが提供する機能も追加しました。

8
dkmojo

別のオプションは、(ホームページのように)どこかにリダイレクトするために、すべてのスライドショーCPTに対して301リダイレクトを設定することです。これはグーグルによって拾われるでしょう、そしてまた誰も偶然にそれらに乗らないことを確実にするでしょう

function rkv_slideshow_redirect() {
    global $wp_query;

    // redirect from 'slideshow' CPT to home page
    if ( is_archive('CPT_NAME_HERE') || is_singular('CPT_NAME_HERE') ) :
        $url   = get_bloginfo('url');

        wp_redirect( esc_url_raw( $url ), 301 );
        exit();
    endif;
}

add_action ( 'template_redirect', 'rkv_slideshow_redirect', 1);
5
Norcross

どうやらあなたの スライドショー 、WordPressではなく、それはそれらのURLを明らかにしている。スライドショーの画像をカスタム投稿へのリンクで囲んでいるのではないかと思います。そうしないようにスライドショーを編集する必要があります。

1
s_ha_dum

あなたの最初の質問への修正、あなたは加えるべきです

'exclude_from_search' => true,

これが追加されていない場合、CPTは検索結果に表示されます。

0
JoseLazo