D7では、URLから取得した分類用語nameに従ってビューをフィルタリングできました。例はこのURLです
http://www.gbyte.co/tags/drupal-planet/rss.xml
「drupal-planet」は分類用語IDに変換され、それに応じてビューの結果がフィルタリングされます。
これで、コンテキストフィルター「コンテンツ:タグ(field_tags)」を使用して対応するD8ビューを設定しました。field_tagsは分類フィールドです。ただし、次のように実際の用語IDをURLに渡した場合にのみ、D8ビューに結果が表示されます。
http://www.gbyte.co/tags/9/rss.xml
D7と同様に、nameという用語も使用できるようにしたいと思います。機能が不足していますか、それともビューを別の方法で構成する必要がありますか?
D8ビューのTerm名は、Term IDフィルターに変換されます 欠落しているように見えます 。
1つのサイトビルダーの回避策は、Relationship、Taxonomy terms on nodeを追加してから、 分類用語:名前フィルターからコンテキストフィルター前述の関係を使用します。 Specify validation criteriaチェックボックスをオンにして、Validatorをに設定しますname&フィルターする適切なTaxonomyをチェックします。
完了のために、質問を書いているときに、この問題を回避するために、分類用語名をURLからviews_hook_pre_view()の用語IDに変換し、それをコンテキストフィルターの入力として使用しましたこれは分類IDを受け入れます。
次に、ビューフックのコードを示します。
/**
* Implements hook_views_pre_view().
*/
function my_module_views_pre_view(\Drupal\views\ViewExecutable $view, $display_id, array &$args) {
if ($view->id() == 'blog' && $display_id == 'feed') {
if (isset($args[0])) {
$term = taxonomy_term_load_multiple_by_name($args[0], 'tags');
if (empty($term)) {
$term = taxonomy_term_load_multiple_by_name(str_replace("-", " ", $args[0]), 'tags');
}
if (!empty($term)) {
$tid = key($term);
$args[0] = $tid;
}
}
}
}
in Drupal 8このモジュールをチェック Views Taxonomy Term Name Depth
Shawn Connの答えを拡張するには:
お役に立てば幸いです。
それでもこの問題が発生するかどうかはわかりませんが、目的の分類用語集を使用して「ノードの分類用語」の関係を作成し、「分類用語:名前」のその関係を使用してコンテキストフィルターを作成することで、 TIDではなく名前に基づいて検証します。
私は不足している機能を復元し、これを再び適切に機能させるための小さなモジュールを書きました:
https://www.drupal.org/project/views_taxonomy_term_name_into_id
ビューの「コンテキストフィルター」で使用される分類用語の「Convert term name into ID」引数バリデーターを再度追加します。詳細と手順については、プロジェクトページを参照してください。
お楽しみください-Derek(dww)
ちょっと私はこの答えをしばらく探していました。それを機能させる方法を探している私のような他の誰にとっても、私は部分的にここから、そしてdrupal.orgの結果から、そして次に以下からも成功への道を進みました: http://redcrackle.com/blog/adding -contextual-filter-view-drupal-8
私はDrupal 8とジルコンを使用しています。私は真新しいので、間違った用語を使用する可能性があります。カテゴリに基づいて「パネルの最初の列1」にコンテキスト画像リンクを作成したかった誰かがいるページです。私が行ったのは、構造>ビュー>カルーセル(そのブロック領域に画像があるビュー)>詳細設定>コンテキストフィルターで追加>分類用語IDがあります>デフォルト値の指定:分類で選択しました。 URLからの用語ID(これは私には意味がありませんが)>次に、3つのボックスすべてをオンにしました:用語ページからデフォルトフィルターをロード、ノードページからデフォルトフィルターをロード、これは関連する分類ブロックに適しています、語彙によって用語を制限します。語彙カテゴリーを調べました。
ふHE!最終的に!私を正しい方向に向けてくれてありがとう!なぜそれが機能するのかを完全に説明することはできませんでしたが、何でも機能し、私は雇用され続けます。
@kiethmはこれに対処する正しい方法を提供しています-コンテキストフィルターの下で選択する必要があります '名前' ではなく 「分類用語ID」 次に、使用する検証基準を設定します 「分類用語名」。