web-dev-qa-db-ja.com

カスタム分類法の場合404

カスタム分類法で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 に続くパーマリンクをリセットしました。そして thisthis のような他の答え。

しかし、私はまだ404を取得しています。

1
laukok

カスタム分類法とカスタム投稿タイプに同じスラッグ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();
}
3
nmr