使用Feeds模块从旧网站导入内容后,我留下了包含返回旧网站的链接的节点主体。
是否有一个Drupal模块将执行一次性过程来迭代每个节点,使用一些自定义代码操纵节点的内容?
答案 0 :(得分:2)
您可以轻松编写PHP脚本来逐步执行node_revisions
表并在那里进行处理。如果您对自定义代码感到满意,那么它可能是最快的方式。
答案 1 :(得分:0)
您可以编写自己的模块,以便运行一次。有一个Drupal hook_init()可以在模块打开时用来触发代码,并且页面已加载。在该函数中,您可以使用db_query查询节点表中的所有节点,遍历每个节点并在要更改的链接上执行preg_replace。修改$ node对象后,在循环结束时使用node_save($ node)来保存节点更改。
或者,您可以使用Link Checker,Path Redirect和/或Global Redirect等模块将旧路径链接到新路径并查找已破坏的链接。
答案 2 :(得分:0)
我通常在phpMyAdmin中运行SQL查询。请参阅http://drupal.org/node/718700#comment-2616682上的帖子。
答案 3 :(得分:0)
迟到的答案,但不过。 有一个pathologic模块,可用于修复节点中的链接。例如,使它们成为绝对的或重写主机部分。