web-dev-qa-db-ja.com

カテゴリベースの強制 - アーカイブページはURL内のカテゴリベーススラッグの存在にかからず動作しますか?

/ blog /を介してルーティングするには、任意のカテゴリ(およびアーカイブページ)の投稿が必要です。私は自分のカテゴリベースに "blog"を追加しましたが、今度はwebsite.com/blog/my-category/ AND website.com/my-category/の両方が同じコンテンツを表示します。単一の投稿はwebsite.com/my-category/my-post-nameにリダイレクトします

私はYoastをインストールし、「カテゴリベースを削除する」オプションを試しに行っていますが、何も機能していません。私がこれを理解している間、それは今不活性化されています。

カテゴリ、アーカイブ、単一の投稿ページにカテゴリベースを使用させる方法はありますか。

1
website walrus

私はここで解決策を見つけました: 404. category.phpページ付け

だから、私の問題を解決するために私はちょうどこれらのカスタム書き換え規則をfunctions.phpに追加する必要がありました:

add_action( 'init', 'wpa58471_category_base' );
function wpa58471_category_base() {
    add_rewrite_rule(
        'blog/([^/]+)/page/(\d+)/?$',
        'index.php?category_name=$matches[1]&paged=$matches[2]',
        'top' 
    );
    add_rewrite_rule( 
        'blog/([^/]+)/(feed|rdf|rss|rss2|atom)/?$',
        'index.php?category_name=$matches[1]&feed=$matches[2]', 
        'top' 
    );
}

現在、メインブログページ、アーカイブ、カテゴリ、単一投稿を含むすべてのブログページが、/ blog /%category /%postname%のパーマリンクカスタム構造を使用して機能します。

** ALSO、Yoastを使用している場合は、必ずカテゴリベースを「維持」してください(これはadvanced-> permalinksの下のデフォルトです)。

1
website walrus