【问题标题】:Drupal remove/delete all pages that contain a certain word in the contentDrupal删除/删除内容中包含特定单词的所有页面
【发布时间】:2021-02-19 14:24:12
【问题描述】:

我继承了一个受到垃圾邮件内容困扰的 Drupal 网站,我想搜索所有包含关键字的页面/内容并删除它们,这在 Drupal 中是否可行,或者我需要通过 mysql 删除内容?如果是这样,我将如何处理这个问题,我对 Drupal 基础架构还很陌生。

【问题讨论】:

  • 您的网站使用的是哪个版本的 Drupal?
  • 这是drupal 7.59
  • 您需要知道涉及哪些内容类型和哪些字段。基本上,drupal 内容被具体化为一个实体,通常是一个节点,根据节点类型“附加”一些字段。现在,第一件事是知道垃圾邮件是如何进入数据库的(以便知道它存储在“哪里”)。它可能来自表单提交,在这种情况下是哪个表单,在哪种输入字段中?如何构建/管理此类表单(是否使用 drupal 表单 api)?您可以在路径 admin/structure/types 检查您的内容类型。

标签: php mysql drupal drupal-7


【解决方案1】:

最好的方法是使用hook update。在这个钩子更新中,您可以运行 database query 甚至更好的 EntityFieldQuery 以使用 SQL LIKE 运算符从数据库中选择具有特定字段值或特定单词/单词集的所有节点/节点 ID。从那里您可以遍历所有节点并通过node_delete() 删除它们。

【讨论】:

    猜你喜欢
    • 2019-05-18
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多