Passing Class Method as a Call-Back Function in WordPress

后端 未结 2 1715
孤独总比滥情好
孤独总比滥情好 2021-02-06 15:33

I\'m looking for a way to pass a class method to a call-back function parameter.

I usually use create_function() as follows but I\'ve heard it is slow and m

2条回答
  •  青春惊慌失措
    2021-02-06 15:59

    Create a static method which returns the array containing the class instance and the method name.

    /* 
        Plugin Name: static method callback demo
    */
    
    add_action('admin_menu', AdminPageClass::_admin_menu());
    
    class AdminPageClass {
    
        static function _admin_menu() {
            $class_name = get_class();
            $classinstance = new $class_name();
            return array(&$classinstance, "admin_menu");
        }
        function admin_menu($instantiate=false) {
            add_options_page(
                'Sample Admin Page Class', 
                'Sample Admin Page Class', 
                'manage_options',
                'sample_admin-page_class', 
                array(&$this, 'admin_page'));
        }
        function admin_page() {
            ?>
            

    Hi there

    Hello World!

提交回复
热议问题