在unctions.php上使用OOP方法是错误的吗?

时间:2017-03-14 作者:Roberto

我正在构建一个主题,并且我正在使用oop方法,尽管如此,到目前为止我所看到的所有主题源代码都使用了过程方法,所以他们编写了这种代码:

If ( ! function_exists( ‘my_theme_function’ ) ) { 
  my_theme_function() {
    // code function here
  }
}
那么,在我的函数上使用什么样的理想方法呢。php?在这种情况下,oop被认为是一种糟糕的做法吗?非常感谢。

1 个回复
最合适的回答,由SO网友:Paul \'Sparrow Hawk\' Biron 整理而成

如中所述Child Themes 法典中的条目:

主题开发人员提示。子主题的功能。首先加载php意味着您可以通过有条件地声明主题的用户函数,使其可插入,也就是说,可以被子主题替换。

if ( ! function_exists( \'theme_special_nav\' ) ) {
function theme_special_nav() {
    //  Do something.
    }
}
这样,子主题就可以通过预先声明父主题的PHP函数来替换父主题的PHP函数。

如果您正在开发的主题将发布供一般使用(即,您将提交到wordpress.org存储库),那么您应该definitely 内置功能,允许基于您的主题构建子主题的其他人覆盖您主题的某些功能。

允许覆盖哪些功能取决于您自己,您无需内置覆盖每个功能/功能的功能。

为了让其他人更容易从您的主题构建子主题,您可以做的另一件事是在适当的地方合并特定于主题的操作/过滤器。

至于你的OOP和程序问题:这实际上归结为个人风格。

要构建OOP风格的主题,可以明智地使用final方法。也就是说,当程序样式不应将函数包装在if (!function_exists(...)) { 那你就用那种方法final, 等

编辑answer 对于另一个WPSE问题,为开发OOP风格的主题提供了更多的上下文。

相关推荐

Calculations in functions.php

我为自己创建了一个发票主题,并试图在自定义列中获取发票总额。我已经尝试调整模板页面中使用的代码,以便在函数中显示这一点。php文件,但它不工作。我的乘法操作数出现了一个操作数错误,我不知道为什么。这是我的代码(如有任何帮助,将不胜感激)。if( $column_name == \'invoice_total\' ) { $hours = 0; // This allows counting of each sub_field //* Set repeater va