パラグラフノードが存在するため、不正であるように見えますが(Search APIを使用して検索していることがわかりました)、コンテンツとして表示されないため、ユーザーインターフェイスから削除できません。
どうすれば適切に削除できますか?
プログラムでそれを行うことを恐れていない場合は、次のコードを使用して段落を読み込んで削除できます。
$entity = \Drupal::entityTypeManager()->getStorage('paragraph')->load($paragraph_id);
if ($entity) $entity->delete();
Drupal 8では、引き続き entity_delete_multiple()
を使用できますが、非推奨としてマークされており、Drupalから削除されます9。
たとえば、次のコードを使用すると、Drushを使用してこれらのエンティティを簡単に削除できます。
drush php-eval 'entity_delete_multiple("paragraph", [$id]);'
Drupal 9で機能するコードを使用しても、これらのエンティティは単一のコマンドラインで削除します。
drush php-eval '$storage_handler = \Drupal::entityTypeManager()->getStorage($entity_type); $entities = $storage_handler->loadMultiple([$id]); $storage_handler->delete($entities);'
$id
を、削除するエンティティのIDに置き換えます。 [$id]
をIDの配列に置き換えて、複数のエンティティを一度に削除することもできます。
これは実際にはバグによって引き起こされます 削除された段落エンティティはデータベースから削除されません 。それが修正されると、この問題は悪化しなくなります(データベースの肥大化)。
クリーンな標準的な方法でこの関連性のないデータをすべて削除するには、 [META]廃止された複合エンティティを既存のストレージから削除する(ガベージコレクション) の解決策を取得する必要があります。
他の回答で提案されている回避策を考え出すのではなく、これらの問題のいずれか(または両方)のパッチで問題を完全に解決できます。