WordPress自定义帖子类型辩论-Functions.php还是插件?
正如你们许多人所知,上周Syed Balkhi参加了WordCamp Raleigh 2012。在活动期间,他的一条推文引发了一场激烈的辩论。在本文中,我们的创始人Syed Balkhi将辩论WordPress自定义帖子类型是否属于functions.php文件或插件。以下是一条开始这场辩论的推文:
发完推文后,WordPress社区中许多有信誉的人插话了。你可以在这里看到完整的对话。柯蒂斯·麦克海尔更进一步,在他的新博客文章中详细阐述了这个话题。
推特上的谈话提出了一些要点。
论点摘要
插件参数:即使用户更改了主题,他们也会始终拥有数据。它可能看起来不那么漂亮,但它会留在那里。
Functions.php 论证:没有设计的数据将无关紧要。这将使用户更加困惑。
你更同意哪一方?显然,双方都有自己的问题,但两种罪恶中哪一个较小?
这就是为什么我们认为自定义帖子类型应该始终存在于特定于站点的插件或单独的插件中。
数据长寿命
自定义帖子类型是数据。在大多数情况下,您的数据将比当前设计寿命大。在多次改变主题后,我们清楚地理解了这一说法。帖子、页面、链接、附件和修订是WordPress内置的所有类型的帖子类型。除此之外,我们还有帖子类型,如书籍、推荐信、交易等。现在你能想象如果我们改变一个主题,让所有这些都消失吗?当然,我们不希望这种情况发生。
在我们的团队中拥有开发人员,这应该不重要。考虑到我们所有的主题都是由我们的团队定制设计的,这到底有什么区别?秘密在于两个词:时间和集中。只要我们拥有所有必要的数据,我们未来所要做的就是改变样式。我们不必担心每次都将函数从一个文件复制和粘贴到另一个文件。如果您想复制功能呢?只需将插件拖放到您的新网站中。改变样式,你就完成了。
规则和标准
当你像我们在推文中那样使用“ALWAYS”这个词时,它可以同时意味着规则和标准。规则和标准都是为大多数人制定的。总会有特殊情况,规则被弯曲,标准被打破,但这并不意味着我们应该完全摆脱标准。
有很多通用的帖子类型,大多需要相同的额外元字段。我想到的一些例子是:报价、书籍、食谱、推荐信、投资组合等。
考虑到自由和商业市场上可用的大量摄影和投资组合主题,让用户每次更改主题时重新输入所有自定义帖子类型信息几乎毫无意义。让我们来看看一个示例案例:
摄影师-用户设置一个具有博客功能的WordPress(默认“发布”CPT)。他想添加他的作品集(需要集约CPT集)。他想向客户展示推荐信(需要推荐信CPT)。所有这些信息肯定会超越主题设计。一年后,用户希望更改其网站的外观并进行刷新。找到一个具有所有类似功能的新主题。在他切换主题的那一刻,BOOM。他之前输入的所有数据都消失了。有一个名为Portfolio的菜单和一个名为Testimonials的菜单,但那里没有数据。用户认为“HOLY CRAP,我失去了我所有的内容”。在论坛中创建一个新的支持问题。向网站发送电子邮件。如果他们没有收到良好的回复,他们将不得不重新输入所有数据。这是一种糟糕的用户体验。
那么,我们如何解决这个问题呢?
可能的解决方案?
我们创建了一个新的标准基础。Justin Tadlock不久前就通过创建一个基础投资组合插件开始处理这个问题。这对每个人来说都是完美的解决方案吗?不,但对大多数人来说会是这样。
正如贾斯汀在他的帖子中问的那样,投资组合插件中应该包含哪些标准字段(参考帖子元)。这种类型的对话需要在在其主题中创建类似功能的开发人员之间进行。当可以通过插件完成时,为什么要一遍又一遍地将相同的内容从一个主题复制粘贴到另一个主题?一旦它成为标准,其他主题作者将开始适应它。
例如,我们看到Genesis等WordPress主题框架中对Gravity Forms的样式支持有所增加。为什么?因为他们明白他们的用户正在使用它。
有一些强大的WordPress主题加载了我们认为应该是插件的功能。工作板主题、问题跟踪主题、分类广告主题、房地产主题等。它们都应该由一个基础插件提供动力。这已经在WooCommerce上发生了。WooThemes发布了许多主题,这些主题对插件具有内置的样式支持。其他主题公司也承诺发布基于WooCommerce的电子商务主题。您可以从一个主题切换到另一个主题,并保持所有产品原样。这几乎就像主题改变了,但一切都到位了。这就是我们需要努力实现的主题改变体验。
为什么不对投资组合、推荐信和其他通用自定义帖子类型做同样的事情呢?是不是因为它太简单了,而电子商务是一只更大的野兽,无法征服?显然,与其他领域相比,电子商务的领域太多了,所以对于这些通用的帖子类型来说应该容易得多。这只是有意识地努力让事情变得更好的问题。
看看ReciPress插件。它创建一个带有食谱字段的自定义元框,并将其与帖子一起附加。然而,可以将其与自定义帖子类型一起附加。任何使用此插件的人都可以更改主题,而不必经历这样的麻烦。
如果能看到像AgentPress这样的主题由集中的基础插件提供支持,那就太好了。如果能看到不断变化的主题的过渡变得更容易,那就太好了。例如,如果用户从一个摄影主题切换到另一个摄影主题,这不应该是混乱的。可能会发生小错误,但至少从大局来看,事情会奏效。
您始终可以举出为一次性客户端使用创建的超级自定义帖子类型的示例,但这是例外,而不是规则。
评论被关闭。