0

我的 Django 网站是一个电子商务商店。相对非技术性的文案编辑将登录 Django 管理界面并为每个产品页面编写文案。他们告诉我,他们希望能够在此副本中创建指向网站其他页面的链接。例如,如果一个产品在其描述中引用了另一个产品,他们希望在页面之间建立链接。

我看到了几个可能的选择:

  1. 他们只是硬编码<a>副本中标签中的网址。我已经为管理 textareas 设置了 ckeditor,所以这将是最简单的解决方案,但是如果网站的 url 结构发生变化(比如我们出于 SEO 目的而更改它们),所有链接都会中断。

  2. 引入某种 wiki 语法,将他们希望链接放在方括号中的文本包围起来。就像是:

    小部件 A 与 [[小部件 B]] 配合得非常好。这很好。

会产生:

Widget A works really well with <a href="/detail/widget-b/">Widget B</a>.  It is good.

那么你有一个问题,如果产品的名称发生变化会发生什么?

以前有没有人处理过这个问题并提出一个足够灵活的解决方案来允许更改链接/名称/等?

4

1 回答 1

1

我经常处理这个问题。最终,你必须非常有说服力才能说服我允许将链接直接嵌入到副本中——尤其是对于电子商务网站。

  • 如果产品名称更改或重新命名怎么办?
  • 如果产品停产怎么办……您不希望内部链接出现 404 错误。
  • 你真的想让人们远离你在页面上的“添加到购物车”号召性用语吗?
  • 他们知道您的 SEO 策略吗?他们会稀释你的链接吗?他们会使用什么措辞?他们会确保链接有效吗?

当我被要求为文案/产品开发团队提供添加链接的能力时,我总是以“否”开头。询问他们需要什么,解释可能出现的问题(例如,维护有效链接的额外成本、转化率考虑因素,SEO 考虑),并提供替代解决方案。

例如,我通常提供允许他们将产品与产品关联为“关联产品”、“相关产品”、“附件”、“更多信息”等的功能。您可以在底部的选项卡或列表中拥有这些产品页面。这些将在模型中,因此您可以控制不显示已停产的产品,链接名称是产品名称(您可以控制 SEO)等。确定它们是用于交叉销售、追加销售还是提供最终用户了解更多信息。

作为最后的手段,我还使用了一个自定义代码解析器,它再次基于目标对象而不是硬编码链接。例如,假设您赋予他们执行以下操作的能力:

Widget A works really well with [product=123].

A custom template tag, parser in your model/view can replace that with a link to the the Product with id=123 (or use slug) based on get_absolute_url(). If the product is discontinued, the name can still show but no link. This only works if you have a policy of never deleting records. Even then, you may have to have some error handling for when they enter an invalid product ID or somebody does delete that product. That will happen.

于 2012-10-04T02:55:35.813 回答