クラス内のフックについてはうまく外せない事があるが、
クラス側の書き方によって外し方も異なるのでメモ
__construct からフックする時に get_called_class() にしておくと、外す時に比較的ラクに外せる。
class Vk_Mobile_Nav {
public function __construct() {
add_action( 'wp_footer', array( get_called_class(), 'menu_set_html' ) );
}
}
$vk_mobile_nav = new Vk_Mobile_Nav;
// 外す
remove_action( 'wp_footer', array( 'Vk_Mobile_Nav', 'menu_set_html' ) );
__construct で $this などで書かれている場合は、
new された グローバル変数を配列に入れて remove_actionすれば外せる。
class Vk_Mobile_Nav {
public function __construct() {
add_action( 'wp_footer', array( $this, 'menu_set_html' ) );
}
}
global $vk_mobile_nav;
$vk_mobile_nav = new Vk_Mobile_Nav;
// 外す
global $vk_mobile_nav;
remove_action( 'wp_footer', array( $vk_mobile_nav, 'menu_set_html' ) );
下記にも詳しくかかれている。
https://labelog.net/post/820