Me gustaría obtener todos los nodos que son de my_custom_type
tipo en Drupal 8 .
Sé que puedo obtener todos los nodos (de cualquier tipo) con \Drupal\node\Entity\Node::loadMultiple()
y la lista de todos los tipos por \Drupal\node\Entity\NodeType::loadMultiple()
.
Pero, ¿cómo obtener solo los nodos del tipo de nodo dado?
Realmente no quiero usar un módulo especializado para él (si es posible), solo manténgalo lo más simple posible. Usaré la solución en mi módulo personalizado.
Y cargar todos los nodos \Drupal\node\Entity\Node::loadMultiple()
y luego registrar su tipo foreach
afectaría demasiado el rendimiento.
$nids = $this->entityTypeManager->getStorage('node')->getQuery()->condition('type','my_custom_type')->execute();
. Ver drupal.org/node/2849874 .Otra forma de hacer esto sería usar este fragmento de código:
fuente
Por lo general, necesita nodos publicados, no todos.
fuente
En realidad es muy fácil,
Si desea que todos los nodos también no estén publicados, simplemente use:
fuente
Algo que fue, en un momento, bastante simple de resolver y encontrar documentación, se ha vuelto un poco más confuso y difícil de encontrar. Este es uno de los principales resultados de búsqueda para este tema, por lo que quiero tomarme el tiempo para publicar una solución que pude reunir usando los nuevos métodos.
Mi caso de uso es obtener una lista de nodos publicados de cierto tipo de contenido y publicarlos en una página como XML para ser consumidos por un tercero.
Aquí están mis declaraciones. Algunos de ellos pueden ser superfluos en este momento, pero todavía no he terminado de actualizar el código.
Aquí está el código para alimentar el objeto al XML
Si necesita masajear los datos, entonces tendrá que llenar una matriz y hacer ediciones allí. Por supuesto, aún puede serializar una matriz de biblioteca estándar.
Espero que esto ayude.
fuente