sitio - ¿cuáles son los complementos wordpress más populares y sus funciones?
Plugin de desactivación de Wordpress en páginas/publicaciones específicas (6)
¿Alguien sabe un método realmente efectivo para deshabilitar un complemento (que está activo) en una página específica? Hay algunos complementos que no son realmente necesarios en algunas páginas del sitio web y tienen muchos archivos CSS y JavaScript que ralentizan la velocidad de carga del sitio web y, a veces, pueden entrar en conflicto con otros archivos.
Sé que puedo meterme con el código del complemento, etc., pero no es realmente efectivo.
¿Algunas ideas?
¡Gracias por adelantado!
Debes editar el código del complemento. WordPress no proporciona la funcionalidad que está buscando.
Primero compruebe si el complemento que desea eliminar no tiene un menú de opciones donde configure páginas para excluir.
En segundo lugar, busque los ganchos de acción del complemento por ejemplo:
add_action(''wp_head'', ''easy_fancybox'', 999);
Este es un ejemplo del complemento de fancybox fácil que engancha al encabezado de wordpress. Para eliminarlo, puse esta función en su functions.php
y antes de cualquier instancia de wp_head();
se llama:
function remove_easy_fancybox() {
remove_action(''wp_head'', ''easy_fancybox_enqueue_styles'');
remove_action(''wp_head'', ''easy_fancybox_enqueue_scripts'');
remove_action(''wp_head'', ''easy_fancybox'');
wp_dequeue_script( ''jquery.fancybox'' );
wp_dequeue_script( ''jquery.easing'' );
wp_dequeue_script( ''jquery.mousewheel'' );
wp_dequeue_script( ''jquery.metadata'' );
}
add_action(''wp_head'', ''remove_easy_fancybox'', 1);
Sé que es viejo, pero este hilo era exactamente lo que necesitaba.
La única advertencia para la respuesta de numediaweb es que la acción de eliminación requiere la misma prioridad que la acción de agregar
Ganchos en el complemento
add_action(''wp_print_styles'', ''easy_fancybox_enqueue_styles'', 999);
add_action(''wp_enqueue_scripts'', ''easy_fancybox_enqueue_scripts'', 999);
add_action(''wp_head'', ''easy_fancybox'', 999);
Código para eliminar ganchos
function remove_easy_fancybox() {
global $post;
$ids = array(12,34,55);
if(in_array($post->ID,$ids)):
remove_action(''wp_print_styles'', ''easy_fancybox_enqueue_styles'', 999);
remove_action(''wp_enqueue_scripts'', ''easy_fancybox_enqueue_scripts'',999);
remove_action(''wp_head'', ''easy_fancybox'', 999);
wp_dequeue_script( ''jquery.fancybox'' );
wp_dequeue_script( ''jquery.easing'' );
wp_dequeue_script( ''jquery.mousewheel'' );
wp_dequeue_script( ''jquery.metadata'' );
endif;
}
add_action(''wp_head'', ''remove_easy_fancybox'', 1);
De http://codex.wordpress.org/Function_Reference/remove_action
Importante: Para eliminar un enlace, los argumentos $ function_to_remove y $ priority deben coincidir cuando se agregó el enlace. Esto aplica para filtros y acciones. No se dará ninguna advertencia sobre la falla de eliminación.
He incluido mi declaración if para ejecutar solo la acción en identificadores postales específicos, pensé que podría ser útil.
ahora puede usar el complemento gratuito Freesoul Deactivate Plugins para desactivar complementos específicos en páginas específicas, publicaciones, publicaciones personalizadas y archivos, la página de configuración es realmente simple
prueba el plugin de Wordpress "Plugin Organizer" de Jeff Sterup. Debes habilitar la "Carga selectiva del complemento" en su configuración (asegúrate de seguir las instrucciones dadas para habilitarlo)
Luego, en su editor de publicaciones / páginas, hay un recuadro debajo de la ventana de redacción con las casillas de verificación para deshabilitar el complemento específico para esa página.
Me llevó probablemente más de 20 búsquedas de repositorios de complementos de Google y Wordpress para finalmente encontrar una solución simple. ¡Espero que funcione para usted también!
add_filter( ''option_active_plugins'', ''lg_disable_cart66_plugin'' );
function lg_disable_cart66_plugin($plugins){
if(strpos($_SERVER[''REQUEST_URI''], ''/store/'') === FALSE AND strpos($_SERVER[''REQUEST_URI''], ''/wp-admin/'') === FALSE) {
$key = array_search( ''cart66/cart66.php'' , $plugins );
if ( false !== $key ) unset( $plugins[$key] );
}
return $plugins;
}