カスタム分類法で404が得られるのはなぜですか?
add_action('init', 'custom_taxonomy_flush_rewrite');
function custom_taxonomy_flush_rewrite() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('init', 'create_publication_categories');
function create_publication_categories() {
$args = array(
'label' => __('Categories'),
'has_archive' => true,
'hierarchical' => true,
'rewrite' => array(
'slug' => 'topics',
'with_front' => false
),
);
$postTypes = array(
'publication'
);
$taxonomy = 'publication';
register_taxonomy($taxonomy, $postTypes, $args);
}
それで私はtaxonomy-publication.php
と呼ばれるテンプレートを持っています、しかし私はまだ404を得ます。
this に続くパーマリンクをリセットしました。そして this や this のような他の答え。
しかし、私はまだ404を取得しています。
カスタム分類法とカスタム投稿タイプに同じスラッグpublication
を使用します。スラッグは unique にする必要があります。
もう一つのこと(404とは関係ありません)はflush_rules
です。あなたが読むことができるように ここinit
フックをフラッシュするのは悪い考えです。
重要 :
- 書き換えルールをフラッシュするのは高価な操作です。
init
フックでそれを実行することを提案するチュートリアルと例があります。 これは悪い習慣です 。それは 'shutdown'フック、またはプラグイン/テーマの起動時に実行されるべきです。- ルールを1回フラッシュする(MultiSiteでは無用であるため、
activation
またはdeactivation
ではなくoptionに状態を格納することをお勧めします)、または書き換えルールを変更する必要があることがわかっている場合 日常的にトリガーされるようなフックではしないでください 。 WPエンジニアの投稿へのコメント内の詳細情報:カスタム投稿の種類とパーマリンク- カスタム投稿タイプと分類法が の前に正しく登録されていることを確認してください 書き換え規則をフラッシュする、特にプラグインの有効化中:WordPressプラグイン開発者用の有効化チェックリスト(アクセス不可)
例
テーマの有効化に関するルールをフラッシュします。
add_action( 'after_switch_theme', 'custom_taxonomy_flush_rewrite' );
function custom_taxonomy_flush_rewrite() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}