1) Is integrating plugins a common practice?
不是真的。通常,您会得到一个提供基本功能的主题。然后,您只能使用用于特殊用途的插件来扩展主题,如推特内容、活动日历等。
在我看来,这是有道理的。我目前正在开发一个非常瘦的主题,它有一些插件(OOP方法),可以作为插件交付,但没有捆绑。这些插件为分页、面包屑等提供模板标记。。。即使是带有post格式的循环。我喜欢只在用户真正需要时才提供功能的想法。例如,如果你使用WP作为商业主页的CMS,那么很少需要评论系统,那么为什么主题要提供这个呢?这种方法的另一个优点是:如果不需要,只需禁用插件,并用自定义内容交换模板标记即可。
这种方法的重要之处在于:不要直接放置那些模板标记。使用挂钩(&A);过滤器包装在函数中,因此如果禁用插件,主题不会因为未定义的函数调用而崩溃。
2) What are the implications/complications in regards to auto-updating the theme/plugins?
这是我目前正在质疑自己的事情。我考虑了一个大规模的例行程序来检查主题和插件的更新,但总的来说:这毫无意义。在我看来,如果您只使用内置更新系统(或者如果您没有在官方repo上托管,则使用一些自定义类),那就更好了。原因:您只更新真正需要更新的内容。这节省了一些时间和精力,所以我甚至称之为“更环保”的方式。
(3)What would be the most optimized way of including each plugin without breaking pre-existing functionality?
在您的案例中,预先存在的功能究竟是什么?
WordPress的函数名大约有2500个函数可以根据请求读取。所以质疑if ( function_exists(\'whatever\') )
从来都不是个好主意。最好使用唯一的名称@简·法布里有一个好主意:他在这里为所有的答案函数加上前缀wpse
和Q的编号-示例:wpse14277_function_name()
. 4位或5位数字加上字母可能会保持唯一性。假设您在主题中有50个自定义函数,并针对每个请求询问它们2.500个(您可以自己计算)-这是不可行的
Edit:
如果您只想知道某个插件是否处于活动状态,请使用is_plugin_active()
条件标记。