我甚至不确定这是否可行。但尽管如此,我还是想问一下。我习惯于根据类中的特定需要包装/分组AJAX调用。见下文。
class my_class {
function __construct() {
$this->hooks();
}
function hooks() {
add_action(\'wp_ajax_my_action\', array($this, \'my_action_callback\'));
}
function my_action_callback() {
// do something
}
}
现在,为了让AJAX回调正常工作,我必须将以下内容添加到
functions.php
(无需将其包装在任何函数中)来实例化该类并使回调工作。
$my_class = new my_class;
这增加了
$my_class
到
global
命名空间。我想避免的事情。您知道如何注册AJAX回调函数而不必在中实例化类吗
functions.php
?
SO网友:Shane Burgess
下面是一个我用来从类中的方法自动创建ajax回调的类的示例。它几乎像路由器一样工作。
class AjaxEndpoint {
//Loop through all functions and add them as ajax actions
public function registerActions() {
foreach ( get_class_methods( $this ) as $method_name ) {
if ( $method_name !== \'registerActions\' ) {
add_action( "wp_ajax_".$method_name, array( $this, $method_name ) );
//add_action( "wp_ajax_nopriv_".$method_name, array( $this, $method_name ) );
}
}
}
}