正如你们许多人所知,上周Syed Balkhi参加了WordCamp Raleigh 2012.在活动期间,他的一条推文引发了相当多的争论。在本文中,我们的创始人Syed Balkhi将讨论WordPress自定义帖子类型是否属于functions.php文件或插件。下面是一条推文开始了这场辩论

推文之后,WordPress社区中的许多信誉良好的人都插手了。你可以在这里看到完整的对话。柯蒂斯麦克海尔更进一步,并在他的新博客文章中详细阐述了这个话题。

来自twitter的对话提出了一些很好的观点。

参数摘要

插件参数:即使用户更改主题用户也始终拥有数据。它可能看起来不漂亮,但它会留在那里。

Functions.php参数:没有设计的数据将无关紧要。它会让用户更加困惑。

您更赞同哪一方?显然,双方都有自己的问题,但两个邪恶中哪一个较小?

这就是为什么我们认为自定义帖子类型应该总是Zǒng shì住在一个特定于站点的插件或一个单独的插件。

万岁数据

自定义帖子类型是数据。在大多数情况下,您的数据将比当前设计更长久。几次改变主题后,我们清楚地理解了这一说法。帖子,页面,链接,附件和修订都是WordPress内置的所有类型的帖子类型。最重要的是,我们有帖子类型,如书籍,推荐书,交易等。现在你能想象如果我们改变主题并让所有这些消失吗?当然,我们不希望这种情况发生。

在我们的团队中有开发人员,这应该不重要。考虑到我们的所有主题都是由我们的团队定制设计的,它真正有什么不同?秘诀在于两个词:时间和集中。只要我们拥有所有必要的数据,我们将来所要做的就是改变样式。我们不必担心每次将函数从一个文件复制并粘贴到另一个文件。如果要复制功能怎么办?只需将插件放入新网站即可。改变样式,你就完成了。

规则标准

当你像我们在推文中那样使用ALWAYS这个词时,它可能意味着规则标准规则和标准都是针对大多数人制定的。总会有一些特殊的案例场景,其中规则被忽视,标准被打破,但这并不意味着我们应该完全摆脱标准。

有大量的通用帖子类型,大多需要相同的附加元字段集。想到的一些例子是:行情,书籍,食谱,推荐书,投资组合等。

考虑到免费和商业市场中可用的大量摄影和组合主题,使用户每次更改主题时重新输入所有自定义帖子类型信息几乎没有任何意义。我们来看一个示例案例场景:

摄影师用户设置具有博客功能的WordPress(默认“发布”CPT)。他希望增加他的作品组合(需要投资组合CPT)。他想展示客户的推荐(需要推荐证书CPT)。所有这些信息肯定会超越主题设计。一年后,用户想要更改其网站的外观并进行刷新。找到具有所有类似功能的新主题。他转换主题的那一刻,BOOM。他输入的所有先前数据都已消失。有一个名为Portfolio的菜单和一个名为Testimonials的菜单,但没有数据存在。用户认为“HOLY CRAP,我丢失了所有内容”。在论坛中创建新的支持问题。向WPBeginner等网站发送电子邮件。如果他们没有得到好的回复,他们将不得不重新输入所有数据。这是一个糟糕的用户体验。

那么我们如何解决这个问题呢?

可能的方案?

我们创建了一个新的标准基础。 Justin Tadlock已经开始通过创建基础组合插件开始研究这个问题了。它会成为每个人的完美解决方案吗?不,但这将是大多数人。

正如Justin在他的帖子中所说,组合插件中应包含哪些标准字段(指的是post meta)。这种类型的对话需要在主题中创建类似功能的开发人员之间进行。为什么可以通过插件完成从一个主题到另一个主题的反复复制和粘贴?一旦它成为标准,其他主题作者将开始适应它。

例如,我们看到在Genesis等WordPress主题框架中Gravity Forms的样式支持有所增加。为什么?因为他们知道他们的用户正在使用它。

有一些强大的WordPress主题加载了我们认为应该是插件的功能。职位委员会主题,问题跟踪主题,分类广告主题,房地产主题等。它们都应该由基本插件提供支持。 WooCommerce已经发生了这种情况。 WooThemes发布了许多主题,这些主题具有内置的插件样式支持。其他主题公司也承诺发布基于WooCommerce的电子商务主题。您可以从一个主题切换到另一个主题,并按原样保留所有产品。这几乎就像主题发生了变化,但一切都恰到好处。这是我们需要努力的主题变化体验。

为什么不对Portfolio,Testimonials和其他通用自定义帖子类型做同样的事情?是因为它太简单了,电子商务是一个更大的征服者?显然,电子商务与其他领域相比有太多的领域,因此这些通用帖子类型应该更容易。这只是一个有意识地努力使事情变得更好的问题。

看看ReciPress插件。它创建一个带有配方字段的自定义元数据框,并将其附加到帖子中。但是可以使用自定义帖子类型附加它。使用此插件的任何人都可以更改主题,而无需经历这样的麻烦。

很高兴看到像AgentPress这样的主题由集中式基础插件提供支持。很高兴看到变化主题的转变变得更容易。例如,如果用户从一个摄影主题切换到另一个摄影主题,则不应该是混乱。可能会发生轻微错误,但至少在更大的范围内,事情会奏效。

您始终可以提供为一次性客户端使用而创建的超级自定义帖子类型的示例,但这不是规则的例外。

你们对这个话题有什么看法?自定义帖子类型代码应该驻留在哪里?在functions.php文件或插件中?

猜您也想看看…

评论被关闭。