Drupal8 Viewsで「関連記事」のブロックを作る方法 Part.2

abechiyo 2019/07/17(水) - 18:58 に投稿

この記事は「Viewsで「関連記事」のブロックを作る方法 Part.1」の後編記事です。 Part.1 を閲覧していない方は、Part.1 より閲覧ください。

 

自身のコンテンツを非表示

 

  1. Views(関連記事) の編集を開き、コンテキスチュアル フィルターの「追加」をクリックし、ダイアログから Content の 「ID」を追加します。

    Views設定
     
  2. 「フィルターが利用可能でない時」の「デフォルト値を設定」にチェックを入れ、Type で「URL から取得したコンテンツ ID」を選択します。

    Views設定

  3. スクロールし「MORE」を開き、「除外」にチェックを入れ、Apply で保存します。

    Views設定

 

これで自分以外の関連コンテンツが表示されるようになりました。ただ、このままでは複数のタームを共通でもつ場合にコンテンツが重複して表示されてしまいます。

 

重複コンテンツの除外、並べ替え

 

この重複を解消し、さらに共通で持つタームの多い順に並べてみましょう。

  1. ビューの編集画面右側「アグリゲーションを使用」のところをクリックします。

    Views設定

  2. 設定画面で「集約」にチェックを入れ、Apply で保存します。

    Views設定

  3. 次に「並び替え基準」の「追加」をクリック。

    Views設定

  4. カテゴリー: Content の ID を選択します。

    Views設定

  5. Content: ID のアグリゲーションの設定画面で「アグリゲーションタイプ」には「カウント」を選択。

    Views設定

  6. 次の画面で、オーダーに「降順で並び替え」を選択し、Apply で保存します。

    Views設定

  7. デフォルトで並び替え基準に「Content: 投稿日時(降順)」が入っていた場合は、「Count(Content: ID)」を先に持ってきます。並び替えの「追加」ボタンの右側「▼」を押し、サブメニューの「並べ替え」をクリック。

    Views設定

  8. ドラッグして「Count(Content: ID) 降順」を先に持ってきます。

    Views設定

    ここまで設定したらビューの編集を保存します。

  9. ビューが出来たら、これを配置してみましょう。今作成したブロックの配置は、管理 > サイト構築 > ブロックレイアウト から行います。ブロックレイアウトの画面から、Content の「ブロックを配置」ボタンをクリック。

    Views設定

  10. 配置可能なブロックが出てくるので、今作成した「関連記事」ブロックの「ブロックの配置」ボタンをクリック。

    Views設定

  11. ブロックの設定画面が開きますので、閲覧の制限「Content Type」で、今回対象とした「Article」コンテンツタイプを選択し、保存。これで「記事」コンテンツのページにのみ、今回作成したブロックが表示されるようになります。

    Views設定

 

以上で完了です!「記事」コンテンツのページにアクセスしてみると、「関連記事」ブロックが表示されています。これは表示中のコンテンツと共通のタグを持つ記事一覧で、共通のタグの多い順に表示されています。

関連記事表示

図ではタイトルしか表示されていませんが、もちろんサムネイルや、内容の一部を表示させることもビューの編集で可能です。

Viewsを使うことで、様々なブロックや、ページ、さらにはREST APIの構築も可能です。
Viewsをうまく使いこなすことが、Drupalを使いこなすコツですので、ぜひ色々とお試しください。

 

タグ