Passing Class Method as a Call-Back Function in WordPress Passing Class Method as a Call-Back Function in WordPress wordpress wordpress

Passing Class Method as a Call-Back Function in WordPress


I found that there was no need to create a static method at all.

add_action('admin_menu', array(new AdminPageClass, "admin_menu"));class AdminPageClass {    function admin_menu() {        add_options_page(            'Sample Admin Page Class',             'Sample Admin Page Class',             'manage_options',            'sample_admin_page_class',             array(&$this, 'admin_page'));    }    function admin_page() {    ?>        <div class="wrap">            <h1>Hi there</h1>            <p>Hello World!</p>        </div>    <?php    }       }


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() {        ?>        <div class="wrap">            <h1>Hi there</h1>            <p>Hello World!</p>        </div>        <?php    }}