plugins – Eliminar la acción del complemento en otro complemento

Pregunta:

Estoy tratando de eliminar dos de las acciones que agregan un complemento (sportspress específicamente). Las acciones de estos complementos son:

add_action('sportspress_before_single_player','sportspress_output_player_details', 15);
add_action('sportspress_single_player_content','sportspress_output_player_statistics',20);

He creado un complemento y quiero eliminar estos ganchos, este es mi código:

<?php
/*
Plugin Name: my plugin

Description: Plugin to override plugins' hooks
Version: 0.1
Author: Company Name
Author URI: http://www.example.com/
License: GPL2
*/


add_action('plugins_loaded','remove_hooks');
function remove_hooks(){
    remove_action( 'sportspress_before_single_player', 'sportspress_output_player_details' );
    remove_action( 'sportspress_single_player_content', 'sportspress_output_player_statistics' );
}

He buscado y probado muchas cosas, pero no puedo hacer que funcione.

Respuesta:

Hay dos cosas que confunden a las personas cuando intentan quitar un gancho:

  1. Las remove_action() o remove_filter() deben tener lugar después de las add_action() o add_filter() , y antes de que se dispare el gancho. Esto significa que debe conocer el gancho cuando se agregaron las llamadas y cuándo se activa el gancho.
  2. Las remove_action() o remove_filter() deben tener la misma prioridad que la add_action() o add_filter()

Si estos ganchos se agregaron en el filtro de inicio con la prioridad predeterminada, entonces, para eliminarlos, simplemente lo conectaríamos a init con una prioridad posterior a 10 y los eliminaríamos.

add_action( 'init', 'wpse_106269_remove_hooks', 11 );
function wpse_106269_remove_hooks(){
    remove_action( 'sportspress_before_single_player', 'sportspress_output_player_details', 15 );
    remove_action( 'sportspress_single_player_content', 'sportspress_output_player_statistics', 20 );
}

De https://codex.wordpress.org/Function_Reference/remove_action

Importante : Para eliminar un gancho, los argumentos $ function_to_remove y $ priority deben coincidir cuando se agregó el gancho. Esto se aplica tanto a los filtros como a las acciones. No se dará ninguna advertencia en caso de error de eliminación.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım