Skip to content

Instantly share code, notes, and snippets.

@sharazghouri
Last active March 25, 2020 11:57
Show Gist options
  • Save sharazghouri/79e85f2641f70810464e46cfa4dde5b7 to your computer and use it in GitHub Desktop.
Save sharazghouri/79e85f2641f70810464e46cfa4dde5b7 to your computer and use it in GitHub Desktop.
You can remove WordPress hooks action with function name. if you are not able to remove action using remove_action() core function.
<?php
function remove_filters_with_method_name( $hook_name = '', $method_name = '', $priority = 0 ) {
global $wp_filter;
// Take only filters on right hook name and priority
if ( ! isset( $wp_filter[ $hook_name ][ $priority ] ) || ! is_array( $wp_filter[ $hook_name ][ $priority ] ) ) {
return false;
}
// Loop on filters registered
foreach ( (array) $wp_filter[ $hook_name ][ $priority ] as $unique_id => $filter_array ) {
// Test if filter is an array ! (always for class/method)
if ( isset( $filter_array['function'] ) && is_array( $filter_array['function'] ) ) {
// Test if object is a class and method is equal to param !
if ( is_object( $filter_array['function'][0] ) && get_class( $filter_array['function'][0] ) && $filter_array['function'][1] == $method_name ) {
// Test for WordPress >= 4.7 WP_Hook class (https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/)
if ( is_a( $wp_filter[ $hook_name ], 'WP_Hook' ) ) {
unset( $wp_filter[ $hook_name ]->callbacks[ $priority ][ $unique_id ] );
} else {
unset( $wp_filter[ $hook_name ][ $priority ][ $unique_id ] );
}
}
}
}
return false;
}
remove_filters_with_method_name( 'login_head', 'customLoginLogo', 10 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment