web-dev-qa-db-ja.com

複数のカテゴリを1つのURLスラッグにまとめる

私は20以上のカテゴリを持つWordpressのWebサイトを持っています。ナビゲートしやすくするために、カテゴリーを減らしたいのですが、同時に元のカテゴリーを残しておきます。言い換えれば、私はカテゴリグループまたは仮想スラッグを使って複数のカテゴリをクエリできるようにしたいのです。

カテゴリの例:

/category/apples/
/category/pears/
/category/bananas/

私はそれらの3つすべてをユニークなURLスラッグでクエリできるようにしたいです。

/category/fruit/

しかし、私が言ったように、それでもまだ/ category/bananas /に行くことは可能なはずです。

/ category/apples、bananas、pears /を使用したい方法で複数のカテゴリーを照会することが可能であることを私は知っていますが、それは優雅な解決策ではありません。

プラグインを使って、または書き換えを使ってこの仮想グループ化を行うことは可能ですか?

ヒントや推奨事項は大歓迎です!

1
Chris

pre_get_postsfunctions.phpでクエリを上書きすることができます。

function add_all_fruits_to_category($query) {
    $catnames = $query->get('category_name');
    if ($catnames == 'fruits') {
        $query->set('category_name', $catnames . ',bananas,apples,pears');
    }
}
add_action('pre_get_posts', 'add_all_fruits_to_category');
4
Virgil Dupras

WordPressの組み込みサブカテゴリ機能はこの問題を解決しませんか?

 + fruit
  + bananas
  + apples
  + pears

あなたは果物の全てを手に入れるでしょう

/categories/fruit

だけでなく、特定のカテゴリ

/categories/fruit/bananas

サブカテゴリを追加するには、各子の親カテゴリとしてfruitを選択するだけです。

2
Pekka 웃