Overslaan en naar de inhoud gaan
info@guusvandewal.nl

EntityQuery example in Drupal 8

The excellent views module (in Drupal Core) is probably sufficient most of the time but if you'd like to create a list of content programmatically you could also use a EntityQuery.

Let's say you'd want a list of blog items ... In your YOURTHEMENAME.theme file of your template you could add the following code to load the nodes and add a view mode as well (to use a specific template, in this case a teaser).

Now each page.html.twig has a variable {{ blog }} that you can render ...

  /**
* @param $vars
* Load a view into pages and an entityQuery
*/

function YOURTHEMENAME_preprocess_page(&$variables) {
// EntityQuery blogs.
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('type', 'blog')
->sort('created', 'DESC');

$nids = $query->execute();
$nids = $nids;
$view_mode = 'teaser';
$entity = 'node';
$langcode = 'en';

if (!empty($nids)) {
$nodes = Node::loadMultiple($nids);
$view_builder = \Drupal::entityTypeManager()->getViewBuilder(reset($nodes)->getEntityTypeId());
$nodes_views = $view_builder->viewMultiple($nodes, 'teaser');
}
$variables['blog'] = $nodes_views;
}

Happy Theming 🤩

Interesse? Neem gerust contact op

Benieuwd wat Guus voor u kan betekenen of gewoon een keertje sparren?
Mail info@guusvandewal.nl of bel 06 48 47 45 71.