web-dev-qa-db-ja.com

フロントエンドの分類アーカイブを完全に無効にする方法

3つのカスタム分類法を登録しました。これら3つのカスタム分類法はすべて、私のカスタム投稿タイプに関連付けられています。

登録された3つのうち1つだけ分類法があります、私がウェブサイトのフロントエンドでこれまでに何にもアクセスできないことを望みます。

これに対する最善の解決策は何ですか?

分類法を登録しながら、さまざまな引数を指定して遊んできましたが、うまくいかないようです。

$args['show_in_nav_menus'] = false;
$args['query_var'] = false;
$args['public'] = false;

template_redirectにフックしてis_tax()チェックをするだけですか?分類を無効にしたい場合は、カスタム投稿タイプのアーカイブにリダイレクトしますか。

2
Michael Ecklund

s_ha_dumの答えは私にはうまくいきませんでした、しかしこれはしました:

/**
 * Completely disable term archives for this taxonomy.
 * @param  string $taxonomy WordPress taxnomy name
 */
function kill_taxonomy_archive($taxonomy){

    add_action('pre_get_posts', function($qry) {

            if (is_admin()) return;

            if (is_tax($taxonomy)){
                $qry->set_404();
            }

        }

    );

}
11
Chris Herbert