Pregunta:
Me pregunto si Drush es capaz de eliminar nodos de un tipo de contenido determinado.
Algo como: $ drush delete-node --type=MyContentType
Si no es posible, ¿puedo crear un método como ese?
Respuesta:
Podría crear una función como la siguiente:
function MYMODULE_delete_all_the_things() {
$query = new EntityFieldQuery;
$result = $query->entityCondition('entity_type', 'node')
->propertyCondition('type', 'YOUR-CONTENT-TYPE')
->execute();
if (isset($result['node']) && count($result['node'])) {
$node_ids = array_keys($result['node']);
node_delete_multiple($node_ids);
}
}
Nota: también puede usar una consulta SELECT
simple, pero dado que está trabajando con entidades, parece más sensato / práctica común usar EntityFieldQuery .
Esto también debería ser bastante fácil de cambiar o agregar argumentos. También puede ponerlo en un comando de Drush con bastante facilidad; hay un ejemplo de cómo hacer esto en el repositorio de Drush (consulte la sección Comandos cerca de la parte inferior).