Joomla:一次为所有文章重新生成别名?

Posted

技术标签:

【中文标题】Joomla:一次为所有文章重新生成别名?【英文标题】:Joomla: regenerate aliases for all articles at once? 【发布时间】:2014-06-18 15:47:18 【问题描述】:

我正在开发一个 Joomla 3.2.1 站点,而客户端不假思索地为所有文章输入了相同的别名,而不是让系统使用文章标题。所以现在如果我想打开 SEF URL,我们将来会遇到 404 问题。

我想一次(批量)重新保存或重新生成所有文章别名。

有办法吗?也许在 mysql DB 中?

提前谢谢你。

【问题讨论】:

您使用直接导入或其他方式输入它们?因为 Joomla 不允许您为同一类别中的多篇文章创建相同的别名。 【参考方案1】:

$alias = JApplication::stringURLSafe($article->title);

【讨论】:

【参考方案2】:

Joomla 会在保存文章时生成别名。我不知道有任何批处理 joomla 功能可以重新生成所有别名,我也有兴趣了解这一点。

如果不存在其他批处理解决方案,您应该手动更新这些字段。

在数据库中,您可以对所有文章运行更新查询,但您必须一一键入每个更新查询。

单行的更新查询如下所示:

UPDATE jos_content
SET alias='my-new-alias-name'
WHERE id='id-of-the-article'

一次对于多行,您可以执行以下操作:

UPDATE jos_content
SET alias = CASE id
    WHEN 1 THEN 'alias1'
    WHEN 2 THEN 'alias2'
    WHEN 3 THEN 'alias3'
END
WHERE id IN (1,2,3)

【讨论】:

【参考方案3】:

您可以做的是使用 mysql 从数据库中的所有文章中删除别名数据。然后制作一个标签,例如“fixalias”。使用批处理功能标记所有带有该标记的文章。 这将为您的所有文章运行 store() 并自动生成别名。然后从标签管理器中删除标签。你 ar

类似的策略还包括删除所有别名,但将您的文章批量移动(不要复制)到临时类别,然后再将它们移回。

【讨论】:

以上是关于Joomla:一次为所有文章重新生成别名?的主要内容,如果未能解决你的问题,请参考以下文章

在前端编辑翻译的(joomfish)文章时,joomla 中出现“相同的文章别名”错误

如何在 Joomla 中生成友好的 url?

SQL语句为joomla文章数据库基于另一个字段创建一个字段

Joomla home 丢失了组件的 sef 别名

在 joomla 文章中显示分类文章?

Joomla 在哪里存储文章图片?