在我之前,很多 WordPress开发者都讨论过主题函数之间的区别。创建一个功能插件 (WP Candy, Ottopress, WP Beginner, Justin Tadlock (several times), Ryan Cowles, 等)。随着高级WordPress主题的普及,似乎许多开发人员都在用大量的功能打包他们的主题。这可能是为了创建一个多合一的网站解决方案,所以用户只需要安装一件东西(主题),他们就拥有了所需的一切。
WordPress不是这样设计的。
主题与插件
WordPress主题的存在是为了创建一个网站的整体设计和布局。设计和布局共同决定了内容呈现给用户时的外观。
WordPress插件的存在是为了创建网站的功能,以及网站的组成部分。
如果你明天要重塑你的公司品牌-改变你的标志、颜色、字体和整个品牌信息-你显然需要改变你的主题。但是这个网站仍然需要像现在一样运作。你所有的内容都应该保持机智,准确地分类它是如何多年来的。用户应该具有相同的功能。行政区域不应该有任何不同。

Themes 用于设计、颜色、字体、间距和布局。
Plugins 用于内容、功能和管理功能。
功能插件与主题函数的区别是什么?
WP Candy的 Ryan Imel提供了一个表格,它将插件中的函数与主题的函数进行了分类。functions.php文件。
我想进一步扩展它,并创建一个我自己的表。这是我的分类:
Code | Functionality Plugin | Theme functions.php |
---|---|---|
Adding styles & scripts | Depends (frameworks, fonts, resets) | Depends (theme styles & other theme-specific) |
Support for post thumbnails & post formats | Always | |
Creating widgetized areas (register_sidebar) | Always | |
Creating actual widgets | Always | |
Registering menus | Always | |
Creating shortcodes | Always | |
Custom post types & taxonomies | Always | |
Create custom image sizes | Depends (if you’ll use them regardless of theme) | Depends (if theme-specific) |
Customize WordPress admin & dashboard | Always | |
Custom login styles for wp-login.php | Depends (if generic with logo & custom message) | Depends (if highly customized to match theme) |
Google Analytics code | Always | |
User functions & profile fields | Always | |
Gravatar functions | Always | |
Add classes to body_class & post_class | Always | |
Changes to the <head> section | Always |
一个插件与多个插件
在对主题函数和功能插件进行了几个小时的研究之后,我决定创建一个功能插件,并使用我们反复使用的许多相同的功能。最后,我创建了一个插件,其中包含子文件夹,用于将各种函数组织成逻辑代码块。
你可以在 github上查看和下载我的 WordPress Custom Functions plugin on github.
然而,现在我已经完成了整个过程,我开始认为创建多个功能插件更有意义。理由如下:
- 如果站点上有问题,通过简单地停用插件更容易调试
- 如果您怀疑存在冲突,或者您需要在再次运行之前创建一些修复,那么可以打开和关闭特性
所有功能都包含在一个插件中,调试变得更加困难,代码就会变得杂乱无章。
我接下来的几个小项目希望包括创建一组小的一次性插件,我将把这些插件上传到 WordPress.org插件库,供社区选择他们想要添加到他们的站点中的哪些功能。
更多资源
- Pros & Cons from onextrapixel.com
- Bill Erickson’s Core Functionality plugin on github
原文:https://wpsmackdown.com/wordpress-functions-php-vs-functionality-plugin