如何避免常见的 WordPress 主题开发错误

已发表: 2021-02-16

WordPress 以极其灵活而著称,尤其是在主题和插件开发方面。 如果您想查看证据,只需询问一组开发人员他们将如何实现特定功能。 您可能会收到几种不同的方法来完成相同的结果。 支持论坛上充斥着此类示例。

但有了这种灵活性,现实情况也很容易以“错误”的方式做事。 现在,在这种情况下,“错误”意味着某些东西要么效率低下,要么在以后维护起来有点痛苦。 虽然它可能在功能上起作用,但通常有更好的方法来完成工作。

让我们看看在主题开发中发现的五个更常见的错误,以及可以为您省去未来麻烦的替代方法。

1. 在模板中使用绝对 URL

如果您曾经查看过 WordPress 页面或帖子生成的 HTML 代码,您会注意到图像和内部链接都使用绝对(完整)URL。 但这并不是在您的主题模板中添加代码时完成任务的最佳方式。

例如,假设您正在开发一个使用临时 URL 的网站。 模板中硬编码的绝对 URL 意味着当您准备在其永久域上启动站点时,您必须手动更改代码。 虽然可以做到这一点,但很容易忘记这种类型的代码可能潜伏的所有位置。

WordPress 具有确定正确 URL 的内置方法——直接从仪表板的Settings > General区域中提取。

对于链接,回esc_url( home_url() )将提供到主页的完整路径。 因此,您可以将一个简单的链接添加回您的主页,而不是显式地将 URL 放在您的代码中,如下所示:

 <a href="<?php echo esc_url( home_url() ); ?>" />Home</a>

此外,您还可以使用它来指向辅助页面。 例如,如果我们想链接到我们网站的 About Us 页面,我们可以使用以下代码:

 <a href="<?php echo esc_url( home_url() ); ?>/about-us/" />About Us</a>

类似的片段也适用于图像。 此示例从活动主题的/images/子文件夹中提取图像:

 <img src="<?php echo esc_url( get_stylesheet_directory_uri() ) ; ?>/images/hello.png" />

2. 直接向模板添加脚本和样式

在 WordPress 中使用第三方脚本和样式是一个独立的世界。 当您第一次开始构建主题时,您可能很想简单地将<script><style>标记,甚至是 Google Font 代码直接嵌入到主题的标题中。 这通常是静态 HTML 网站的处理方式,所以在这里做同样的事情是有意义的。

但是,就像 WordPress 中的所有其他内容一样,有更好的方法来解决它。 取而代之的是利用wp_enqueue_script()wp_enqueue_style() ——它们为您添加脚本和样式表到正确的位置。 它还使管理资产变得更加容易,因为所有内容都是从主题的functions.php文件中调用的。

WordPress 主题手册并没有在这里重新发明轮子,而是提供了有关如何正确地将脚本和样式添加到主题的出色指南。

做出明智的发展决策

3.调用jQuery的外部实例

在相关说明中,WordPress 的一个隐藏的秘密是它已经包含了 jQuery 的副本,以及几个流行的 UI 功能。 因此,您不需要安装 jQuery 或远程调用它。 这使得利用流行的 JavaScript 库和实现标签、日期选择器、对话框等元素变得容易。

唯一需要注意的是,您必须通过主题的functions.php文件专门启用要使用的项目。 虽然这创造了一些学习曲线,但它也减少了臃肿。

而且,说实话,实现所需的 jQuery UI 元素并不太难。 例如,要启用 jQuery UI 选项卡,只需将以下代码段添加到您的functions.php

 function my_jquery_elements() { wp_enqueue_script( 'jquery-ui-tabs', array('jquery')); add_action( 'template_redirect', my_jquery_elements ', 10 );

这告诉 WordPress 从其现有库中加载元素。 从那里,设计您的选项卡并按照 jQuery UI 文档中的说明定义它们。

4. 过度定制

添加自定义字段和自定义帖子类型的能力可以让开发人员和网站内容编辑者的生活变得更加轻松。 它们提供便利、更好的内容组织和更直观的用户体验。 但有时我们太过分了。

例如,我是自定义字段的忠实粉丝。 但即使是我也承认,有时我将主题定制到不灵活的地步。 字段非常适合我们确切知道需要输入哪些内容的设置 - 例如员工个人资料的字段。

但是,当某人想要添加的内容类型不一致时,它可能会变得混乱。 客户因在内容中存在“小”异常而臭名昭著,这会使使用自定义变得更加困难。 条件逻辑可以解决其中的一些问题,但您只能在 UI 失控之前将其处理到这么远。

这种类型的定制没有硬性规定。 我们唯一能做的就是使用我们最好的判断来确定哪些内容应该定制,哪些内容可以更好地留给 WordPress 内容编辑器甚至是小众插件。 当我们添加字段或帖子类型时,只要知道事情可能会发生变化,并尝试在此基础上进行构建。

5. 没有注释代码

我要在这里再次承认:评论代码不是我的强项之一。 不是我根本不使用评论,而是他们不是很清楚。 通常,我会指出特定项目的开始和结束,中间不会有太多的洞察力。 我应该做更多吗? 大概是这样。

注释很重要,因为它至少在代码中提供了一些参考点。 在挖掘包含多个内容的 PHP 或 JS 文件时,您会想知道在哪里可以找到特定项目。

即使您是唯一会编辑该代码的人,也强烈建议您使用注释。 例如,如果您需要在六个月后更改某些内容,那么您不太可能记住您放置代码片段的确切位置。

因此,我不会成为一个巨大的伪君子,并恳请您对所有内容进行深入的评论。 但我要说的是,即使是最小的努力也可以让您或其他必须梳理您的工作的开发人员更轻松地进行未来的维护。

最少注释的代码

随着时间的推移更好的技术

构建自己的 WordPress 主题可能是一种很棒的体验。 但是,要掌握创建编码良好且易于维护的主题的更精细的细节,确实需要一些很好的练习。 您获得的经验越多,您的技术就会发展得越多。

我可以诚实地说,我放在一起的前几个主题远没有现在那么有效。 而且我也确信,当真正的专家开发人员查看时,它们可能仍然不符合标准。 从这个意义上说,我们的进化是一个不断的进化。

最后,我想指出,我个人犯了上述每一个错误。 只有通过反复试验,以及对 Codex 的多次访问,我才发现如何开始以“WordPress 方式”做事。

教训是我们都会犯错误。 但每一个都为我们提供了学习和提高的机会。