在我看到的许多主题(包括TwentyEleven)和我在网上找到的示例中functions.php
主题的文件所有功能都在全局范围内声明。为了澄清,这是典型函数文件的外观:
function my_theme_do_foo() { // ... }
function my_theme_do_bar() { // ... }
add_action( \'foo_hook\', \'my_theme_do_foo\' );
在我看来,如果使用类,事情可以“封装”得更好一些:class MyTheme {
function do_foo() { // ... }
function do_bar() { // ... }
}
$my_theme = new MyTheme();
add_action( \'foo_hook\', array( &$my_theme, \'do_foo\' ) );
第二种方法的优点(在我谦逊的眼中):更短的函数名访问实例变量(IMO的最大优点)没有全局函数的缺点:
Classname仍然可能会导致冲突,无法与子主题“自定义”(必须扩展父类)
我对WordPress主题开发相当陌生,如果这是WP社区的常识,请原谅我:)。只是想知道为什么事情是这样的。