Soporte » WordPress Avanzado » [Tutorial] Como deshabilitar algunos plugins de algunas paginas específicas

  • anibalardid

    (@jackalpret)


    Buenas a todos.
    Esto es algo que usé mucho en una empresa q trabajé y se que hay varios que no lo conocen.
    La idea es por ejemplo en la home, o la pagina de resultados de búsqueda poder deshabilitar plugins q no usamos para que no se sobrecargue nuestra web.

    Una solución facil y rapida es crear un archivo/fichero .php en la carpeta wp-content/mu-plugins

    por ejemplo «selector.php»

    el codigo que yo usaba era el siguiente:

    
    <?php
    /*
    Plugin Name: Plugin Selector
    Plugin URI: https://ardid.com.ar
    Description:  Removes plugins in selected pages
    Author: Anibal Ardid
    Version: 1.0
    Author URI: https://ardid.com.ar
    */
    
    add_filter( 'option_active_plugins', 'plugin_selector' );
    
    function plugin_selector($plugins){
    
        if(strpos($_SERVER['REQUEST_URI'], '/search/') === 0) {
    
            // KK Star Ratings
            $key = array_search( 'kk-star-ratings/index.php', $plugins );  
            if ( false !== $key ) { unset( $plugins[$key] ); }
    
            // Shareaholic
            $key = array_search( 'shareaholic/shareaholic.php', $plugins );  
            if ( false !== $key ) { unset( $plugins[$key] ); }
    
            // Genesis Responsive Slider
            $key = array_search( 'genesis-responsive-slider/genesis-responsive-slider.php', $plugins );  
            if ( false !== $key ) { unset( $plugins[$key] ); }
            
            // Contextual Related Posts
            $key = array_search( 'contextual-related-posts/contextual-related-posts.php', $plugins );  
            if ( false !== $key ) { unset( $plugins[$key] ); }
    
        } elseif($_SERVER['REQUEST_URI'] === '/' || $_SERVER['REQUEST_URI'] === '') {
    
            // KK Star Ratings
            $key = array_search( 'kk-star-ratings/index.php', $plugins );  
            if ( false !== $key ) { unset( $plugins[$key] ); }
    
            // Shareaholic
            $key = array_search( 'shareaholic/shareaholic.php', $plugins );  
            if ( false !== $key ) { unset( $plugins[$key] ); }
    
        }
    
        return $plugins;
    }
    

    de esa manera en la pagina de search deshabilitaba algunos y en la home otros o los mismos.

    en caso de no saber cuales plugins se cargan pueden hacer un error_log y verlo, por ejemplo:

    
    <?php
    /*
    Plugin Name: Plugin Selector
    Plugin URI: https://ardid.com.ar
    Description:  Removes plugins in selected pages
    Author: Anibal Ardid
    Version: 1.0
    Author URI: https://ardid.com.ar
    */
    
    add_filter( 'option_active_plugins', 'plugin_selector' );
    
    function plugin_selector($plugins){
    
        if(strpos($_SERVER['REQUEST_URI'], '/search/') === 0) {
    
                    error_log("plugins en search:" . print_r($plugins, true), 3, '/directorio/donde/crear/el/archivo.txt');
    
        } elseif($_SERVER['REQUEST_URI'] === '/' || $_SERVER['REQUEST_URI'] === '') {
    
            error_log("plugins en home:" . print_r($plugins, true), 3, '/directorio/donde/crear/el/archivo.txt');
    
        }
    
        return $plugins;
    }
    

    espero que les sirva, les mando un gran abrazo !

Viendo 2 respuestas - 1 de 2 (de 2 total)
  • Pablo Moratinos

    (@pablo-moratinos)

    Está muy guay esto Anibal, gracias por compartirlo aquí (lo vi en slack y temí que se perdiera 😀 )

    anibalardid

    (@jackalpret)

    genial pablo, espero q le sirva a alguno y lo puedan aprovechar 😉

Viendo 2 respuestas - 1 de 2 (de 2 total)
  • El debate ‘[Tutorial] Como deshabilitar algunos plugins de algunas paginas específicas’ está cerrado a nuevas respuestas.