首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在主题中集成插件

在主题中集成插件
EN

WordPress Development用户
提问于 2011-04-08 12:23:18
回答 3查看 2.6K关注 0票数 3

我找不到一条讨论这件事的线索,所以就从这条线开始。

我目前正在为3.1+开发一个相当精细的主题,我的意思是,除了样式和常规前端功能之外,我还将插件包括在主题的核心,包括后端和前端。因此,为了使这件事更有条理,我把它分成三个问题:

  1. 集成插件是一种常见的做法吗?
  2. 在自动更新主题/插件方面有什么含义/复杂性?
  3. 在不破坏现有功能的情况下,包含每个插件的最优化方法是什么?
EN

回答 3

WordPress Development用户

回答已采纳

发布于 2011-04-08 14:16:45

1)集成插件是一种常见的做法吗?

不怎么有意思。通常,您有一个提供基本功能的主题。然后,您只使用插件扩展主题,如twitter内容、事件日历等。

我觉得这很有道理。我目前正致力于一个非常苗条的主题,它有一些插件(OOP方法),可以作为插件交付,但并不捆绑。这些插件提供了分页模板标签,面包屑,.甚至是带有post格式的循环。我喜欢只在用户真正想要的时候才提供功能的想法。为了前夫。如果您使用WP作为CMS的buisness主页,那么这个评论系统是很少需要的,那么为什么主题应该提供这个呢?这种方法的另一个好处是:如果您不需要插件,只需禁用插件并将模板标记与自定义的东西交换即可。

这种方法的重要之处在于:不要直接放置那些模板标记。使用钩子&过滤器包在函数中,这样如果禁用插件,主题就不会因为未定义的函数调用而崩溃。

2)在自动更新主题/插件方面有哪些含义/复杂性?

这是我目前在问自己的问题。我想到了一个庞大的例程,它检查主题和插件的更新,但总的来说:这是没有意义的。如果您只使用内置更新系统(或者使用一些自定义类,如果您没有在正式回购中托管),则更好。原因:您只更新真正需要更新的内容。这节省了一些时间和精力,所以我甚至称之为“绿色”的方式。

3)在不破坏现有功能的情况下,包含每个插件的最优化方法是什么?

在你的情况下,什么是预先存在的功能?

函数名

WordPress大约有2.500个函数可以在请求中读取。因此,质疑if ( function_exists('whatever') )绝不是一个好主意。最好用唯一的名字。@Jan有一个好主意:他在这里的所有答案函数前加上了wpse和Q-示例的编号:wpse14277_function_name()。一个4或5位数的数字加上阿尔法很可能会保持独特的状态。假设您在主题中有50个自定义函数,并且对每个请求的2.500个函数进行质疑(您可以自己计算)--这是不符合性能的。

编辑:

如果您只想知道插件是否处于活动状态,请使用is_plugin_active()条件标记。

票数 2
EN

WordPress Development用户

发布于 2011-04-08 12:36:09

  1. 是的,你在functions.php中构建的任何东西在技术上都可能被重新设计成一个插件并分发,同样也是相反的。
  2. 您将不得不以稍微不同的方式处理版本控制方面。有了插件,每次你做一个改变,你必须只更新那个插件。有了一个主题,每一个小小的改变都会更新整个主题。这并不是什么大问题,实际上,它可能会更方便一些,因为当主题更新可用时,WordPress会提醒用户,就像它对插件发出警告一样。
  3. 请确保将函数重命名为惟一函数,否则在重新声明函数时会遇到崩溃。我发现用你的主题名预装函数是最容易的。plugin_function()将变成theme_plugin_function()。

如果您发现您的functions.php变得有点笨重和杂乱无章,您可以在主题中创建更多的.php文件来帮助组织事情,然后通过include_once('path/filename.php')在functions.php中调用这些文件。

票数 1
EN

WordPress Development用户

发布于 2011-04-08 12:42:17

我想说清楚,你是说把已经作为独立的、功能齐全的插件存在的代码包括进来吗?

集成插件是一种常见的做法吗?

在主题中集成一般的代码是常见的做法。然而,捆绑过多的代码和功能,通常与正常插件实现,被一些人视为功能膨胀,并试图锁定用户进入你的主题。

在自动更新主题/插件方面有什么含义/复杂性?

Update用新版本覆盖所有内容。

在不破坏现有功能的情况下,包含每个插件的最优化方法是什么?

这在很大程度上取决于插件的具体功能,它是如何编码的,以及您的主题是否需要功能,还是仅仅是额外的功能。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/14277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档