Gostaria de obter todos os nós que são do my_custom_type
tipo no Drupal 8 .
Eu sei que posso obter todos os nós (de qualquer tipo) \Drupal\node\Entity\Node::loadMultiple()
e a lista de todos os tipos por \Drupal\node\Entity\NodeType::loadMultiple()
.
Mas como obter apenas os nós de um determinado tipo de nó?
Eu realmente não quero usar um módulo especializado para isso (se possível), apenas mantenha-o o mais simples possível. Vou usar a solução no meu módulo personalizado.
Carregar todos os nós \Drupal\node\Entity\Node::loadMultiple()
e, em seguida, fazer o check-in, foreach
afetaria muito o desempenho.
$nids = $this->entityTypeManager->getStorage('node')->getQuery()->condition('type','my_custom_type')->execute();
. Veja drupal.org/node/2849874 .Outra maneira de fazer isso seria usar esse trecho de código:
fonte
Geralmente você precisa de nós publicados, não todos.
fonte
É realmente muito fácil,
Se você deseja que todos os nós também não sejam publicados, use:
fonte
Algo que era, ao mesmo tempo, bastante simples de descobrir e encontrar documentação tornou-se um pouco mais confuso e difícil de encontrar. Este é um dos principais resultados de pesquisa deste tópico, por isso quero publicar uma solução que consegui montar usando os novos métodos.
Meu caso de uso está obtendo uma lista de nós publicados de um determinado tipo de conteúdo e publicando-os em uma página como XML para serem consumidos por terceiros.
Aqui estão as minhas declarações. Alguns deles podem ser supérfluos neste momento, mas ainda não terminei de atualizar o código.
Aqui está o código para alimentar apenas o objeto no XML
Se você precisar massagear os dados, precisará preencher uma matriz e fazer edições nela. Obviamente, você ainda pode serializar uma matriz de biblioteca padrão.
Espero que isto ajude.
fonte