在ezpublish中创建可重写的URL


Create rewritable URL in ezpublish

我会更改我的URL文章

www.mynews.fr/news/politic/the-new-gouverner-china

To

www.mynews.fr/news/politic/the-new-gouverner-china-16-06-2013-78965

我会在Google Actuality上查阅我的文章。感谢您的反馈。

URL是在编辑类时根据"URL别名模式"参数生成的。

这意味着,如果您有一个具有标题(字符串类型)和日期属性(日期类型)的类,如果您在URL别名模式字段中使用<title>-<date>,则URL将如下所示:http://my.domain.com/Titre-article-mardi-23-juillet-2013

从技术上讲,系统用来确定在URL中使用什么的值是由每个数据类型的title()函数给定的。日期数据类型的示例:https://github.com/ezsystems/ezpublish-legacy/blob/master/kernel/classes/datatypes/ezdate/ezdatetype.php#L273日期将基于您的区域设置,但根据源代码,我猜您将无法正确更改所使用的格式(例如:%Y-%m-%d),而不会对代码进行黑客攻击。

也就是说,除了来自内容属性的信息之外,没有添加其他内容的解决方案,并且node_id是对象的属性,而不是属性。

为了解决您的问题,我建议创建一个自定义数据类型,它只会实现一个title()函数来返回您想要的URL模式(在您的情况下,是您想要的格式的日期,加上node_id)。

希望这能有所帮助。

为了seo的目的,您可以提交谷歌新闻XML网站地图,然后URL字符串中的数字就不需要了。

但是,如果你想在URL中有一个数字,你可以按照foobar的建议将date属性添加到URL模式中,或者你也可以将一个新的identifier属性添加到文章类中,并将其设置为至少4或5位数字的自动递增,然后将该属性添加到标题中。