Last active
March 25, 2020 11:57
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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