这取决于你到底想做什么。如果只想显示一条短消息,请对这两条消息使用相同的回调。
但是,如果您需要完全不同的对象,并根据登录状态加载不同的附加文件,请使用单独的回调。
基本示例,可能不是建议的实现。:)
class Ajax_Controller {
public function __construct( $action ) {
add_action( "wp_ajax_nopriv_$action", array ( $this, \'logged_out\' ) );
add_action( "wp_ajax_$action", array ( $this, \'logged_in\' ) );
}
public function logged_out() {
require_once __DIR__ . \'/Logged_Out_Data_Interface.php\';
require_once __DIR__ . \'/Logged_Out_Data.php\';
require_once __DIR__ . \'/Logged_Out_View.php\';
$data = new Logged_Out_Data;
$view = new Logged_Out_View( $data );
$view->render();
}
public function logged_in() {
require_once __DIR__ . \'/Logged_In_Data_Interface.php\';
require_once __DIR__ . \'/Logged_In_Data.php\';
require_once __DIR__ . \'/Logged_In_View.php\';
$data = new Logged_In_Data;
$view = new Logged_In_View( $data );
$view->render();
}
}
看看你的用例,要务实。如果有疑问,请比较两种方法的性能和复杂性。