En aquest article explique com he reemplaçat al vol unes etiquetes que hi ha al cos dels articles de Drupal de manera.
Podria fer un mysqldump, generar-me una còpia .sql de la base de dades Drupal i després reemplaçar les etiquetes amb sed, però de vegades pot donar problemes, aleshores he decidit fer-ho amb Drush, la millor ferramenta per als desenvolupaments de projectes Drupal.
Aleshores, primer de tot instal·larem Drush amb:
composer require drush/drush
Ara vull reemplaçar "<code>" i "</code>" per l'etiqueta: "<pre><code>" i "</code></pre>"
Executarem el següent codi, que reemplaçarà al vol a tots els nodes:
./vendor/bin/drush php:eval '
$nids = \Drupal::entityQuery("node")->accessCheck(FALSE)->execute();
foreach ($nids as $nid) {
$node = \Drupal\node\Entity\Node::load($nid);
if ($node->hasField("body")) {
$body = $node->get("body")->value;
if (strpos($body, "") !== false && strpos($body, "") === false) {
$new_body = str_replace("", "", $body);
$new_body = str_replace("", "
", $new_body);
$node->get("body")->value = $new_body;
$node->save();
print "Actualitzat node $nid\n";
}
}
}
'
El resultat serà així:

I ja tenim tots els nodes actualitzats.





