包括正确的方式
包括文件时,需要记住两件不同的事情:
1。使用核心函数获取路径
我解释了大多数可用函数
with this answer. 考虑查看
/wp-includes/link-template.php
在core中归档,查看core还为您提供了什么。
在加载文件时,Php非常便宜:只要不执行函数,这并不重要。因此:加载文件不会有问题。加载类本身(可能运行__construct();
车窗负荷)可能会变得更大。因此,唯一真正的问题是:如何避免在特定页面上执行整个流程。
2.1。使用其中一个add_submenu/menu/*_page()
函数,然后您可以@return
值并使用它确定当前页面的挂钩。
// Example:
$hook_suffix = add_options_page(
\'My Plugin Options\',
\'My Plugin\',
\'required_capability\',
\'my-unique-identifier\',
\'my_plugin_options\'
);
// Add hook for action executed when plugin\'s options page is loaded
add_action( "load-{$hook_suffix}" , \'my_load_function\' );
2.2。或者检查正确的全局变量,您可以在管理屏幕上看到大量全局变量。大多数已设置为init
或admin_init
挂钩。
$menu
$submenu
$pagenow
$typenow
$self
$parent_file
$submenu_file
等等&hellip
您还可以检查
global $current_screen
. 这提供了一个对象,您可以在其中对照其各个部分进行检查。
Globals vs.public API
$_GLOBALS
没有保存到DB中的内容。因此,它只在以前注册的情况下可用。关键是不能排除类,但仍然可以使用全局类。无论如何,你都必须重新思考这个概念:你可以为全球化者做很多事情,比如
unset
, 等等。这大部分是你不想发生的事情。如果您正在为您的用户(和您自己)提供一个公共API,那么这取决于您,这些函数能做什么,不能做什么。
在我看来,添加另一个保存公共API的文件更容易。在那里,您可以简单地包含插件核心文件,然后只调用类中您希望访问的那些函数。另一个好处是可以添加预定义的参数。这些可以让您在模板中更快地工作,而且还可以wp_parse_args( $defaults, $input_args );
使用默认的类变量。
激活、停用、卸载和hellip
你好;我已经说过了吗
explain in detail with this answer.