Drupal 8 サイトに、ビュー ブロックを含む分類ページがあります。ビューには、現在のページの用語でタグ付けされた記事が一覧表示されます。また、現在の分類ページの子用語でタグ付けされた記事も表示されます。
ユーザーが子用語に基づいて記事をフィルタリングできるように、「コンテンツ: 分類用語 (深さあり) (公開) があります」という公開フィルターを使用しています。現在、そのフィルターは、現在使用している分類法に関係なく、すべての用語を表示します。
公開されたフィルターにリストされているアイテムの例を次に示します。
Mammals
- Cat
- Dog
Reptiles
- Lizard
- Snake
Amphibians
- Frog
- Salamander
親用語の 1 つの URL は次のようになります。
site.com/animal/mammals
公開されたフィルター内のオプションのリストを制限して、URL に基づいて用語の子のみを表示する必要があります。したがって、上記の URL では、Cat と Dog のみが公開フィルターにリストされます。
Drupal 7 では、テーマ名を取得するために URL arg(2) を使用して、theme.module の hook_form_alter でこれを実現できました。Drupal 8 でこれを行う方法に関するドキュメントが見つかりません。
これが私がこれまでに見つけたものです:
function myTheme_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
if ($form_id == 'views_exposed_form' && $form['#id'] == 'views-exposed-form-article-tags-block-1') {
$term = arg(2);
//Need D8 code to load term, find it's children and alter the select box to show those children
}
}
これが私の目標を達成する方法ではない場合、私は他の選択肢を受け入れます. 前もって感謝します。