Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2010, 11:48
shimapi2
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
Exclamación Desactivar Hooks de plugins en sólo un template

Hola!! hace varios días estoy tratando de encontrar la solución para mi problema... he probado 3483740 cosas! y no funciona...

Debo desarrollar una página con la construcción de un mailing (con tablas y todo lo que un mailing conlleva), de algunas categorías... todo eso está ok, pero el problema está cuando se despliegan los plugins Sociable y Thumbs Excerpts ... Necesito que NO se desplieguen! =(

Mi gran problema es que NO puedo ponerles display:none con css, puesto que la finalidad es la construcción de un mailing, que no puede llevar triquiñuelas de esa especie... además el despliegue de los plugins se hace dinámicamente.

He probado:

En la misma plantilla del mailing.php
Código PHP:
remove_filter('init''sociable_init_locale');
register_deactivation_hook(__FILE__'sociable_activation_hook');
remove_filter('the_content''sociable_display_hook');
remove_filter('the_excerpt''sociable_display_hook');
remove_action('wp_insert_post''sociable_insert_post');
    
list_hooked_functions('wp_head');
list_hooked_functions('wp_footer');
list_hooked_functions();

remove_all_actions('sociable_activation_hook');
remove_all_filters('sociable_activation_hook'); 
La función list_hooked_functions(); la agregué en Functions.php
Código PHP:
function list_hooked_functions($tag=false){
 global 
$wp_filter;
 if (
$tag) {
  
$hook[$tag]=$wp_filter[$tag];
  if (!
is_array($hook[$tag])) {
  
trigger_error("Nothing found for '$tag' hook"E_USER_WARNING);
  return;
  }
 }
 else {
  
$hook=$wp_filter;
  
ksort($hook);
 }
 echo 
'<pre>';
 foreach(
$hook as $tag => $priority){
  echo 
"<br />&gt;&gt;&gt;&gt;&gt;\t<strong>$tag</strong><br />";
  
ksort($priority);
  foreach(
$priority as $priority => $function){
  echo 
$priority;
  foreach(
$function as $name => $properties) echo "\t$name<br />";
  }
 }
 echo 
'</pre>';
 return;

También probé en Functions.php con:
Código PHP:
function quita_hooks_indeseados(){
if((
is_page('3624')) || (is_page('3621'))){
    echo 
"La función está mostrándose en la plantilla";
        
    
remove_filter('init''sociable_init_locale');
    
register_deactivation_hook(__FILE__'sociable_activation_hook');
    
remove_filter('the_content''sociable_display_hook');
    
remove_filter('the_excerpt''sociable_display_hook');
    
remove_action('wp_insert_post''sociable_insert_post');
    
//list_hooked_functions('wp_head');
//list_hooked_functions('wp_footer');
list_hooked_functions();

remove_all_actions('sociable_activation_hook');
remove_all_filters('sociable_activation_hook');


y el uso en el template es:
Código PHP:
quita_hooks_indeseados(); 

Muchas gracias por su ayuda! en serio que busqué muchísimo antes de abrir este tema.


Gracias!!!,
Shimapi