Deshabilitando completamente los widgets

2

¿Cómo elimino completamente la compatibilidad con widgets de un tema / complemento?

Me gusta eliminar la apariencia - > página de widgets , y evita que WP cargue las clases de widgets y todo lo relacionado con los widgets.

    
pregunta onetrickpony 24.03.2011 - 15:10

4 respuestas

4

Una opción sería simplemente eliminar el código del widget del archivo sidebar.php, así como las páginas de encabezado / pie de página / publicación si están usando widgets.

Sin embargo, eche un vistazo a este fragmento de código (cortesía de este sitio ), que puede agregar a su archivo functions.php y deshabilitará los widgets. Creo que este sería un enfoque más limpio si estás buscando cambiar temas y aún así tienes los widgets deshabilitados.

<?php 
   add_filter( ‘sidebars_widgets’, ‘disable_all_widgets’ ); 
   function disable_all_widgets( $sidebars_widgets ) 
   { 
      if ( is_home() ) $sidebars_widgets = array( false ); 
      return $sidebars_widgets; 
   } 
?>

Tenga en cuenta que esto solo deshabilitará los widgets en su página de inicio, por lo que deberá encontrar los condicionales adicionales para páginas / publicaciones / etc individuales.

    
respondido por el Dillie-O 24.03.2011 - 15:35
3

Si utilizas las funciones internas de widgets.php , entonces es tan fácil como esto:

    // final function makes most sense
    // (useing stuff like '$GLOBALS['wp_widget_factory']' will do nothing better than this ex.)
   // place inside your functions.php  

    unregister_widget( 'some widget' );

    // if my search results are right, these should be the available default widgets 
    // from /wp-includes/widgets.php
    Line 389:   'wp_widget_pages',
    Line 390:   'wp_widget_pages_control',
    Line 391:   'wp_widget_calendar',
    Line 392:   'wp_widget_calendar_control',
    Line 393:   'wp_widget_archives',
    Line 394:   'wp_widget_archives_control',
    Line 395:   'wp_widget_links',
    Line 396:   'wp_widget_meta',
    Line 397:   'wp_widget_meta_control',
    Line 398:   'wp_widget_search',
    Line 399:   'wp_widget_recent_entries',
    Line 400:   'wp_widget_recent_entries_control',
    Line 401:   'wp_widget_tag_cloud',
    Line 402:   'wp_widget_tag_cloud_control',
    Line 403:   'wp_widget_categories',
    Line 404:   'wp_widget_categories_control',
    Line 405:   'wp_widget_text',
    Line 406:   'wp_widget_text_control',
    Line 407:   'wp_widget_rss',
    Line 408:   'wp_widget_rss_control',
    Line 409:   'wp_widget_recent_comments',
    Line 410:   'wp_widget_recent_comments_control'
    
respondido por el kaiser 24.03.2011 - 16:58
2

remove_theme_support ('widgets') no funcionará debido a:

function remove_theme_support( $feature ) {
// Blacklist: for internal registrations not used directly by themes.
if ( in_array( $feature, array( 'editor-style', 'widgets', 'menus' ) ) )
    return false;

return _remove_theme_support( $feature );
}
    
respondido por el theck 16.09.2012 - 00:55
1

El elemento de menú "Widgets" se agrega con wp_widgets_add_menu() , llamado en el gancho _admin_menu , según lo configurado por wp_maybe_load_widgets() . Puedes deshabilitarlo desconectándolo de _admin_menu o devolviendo false para load_default_widgets .

También puede anular el registro de todas las barras laterales como sugirió Bainternet y remove_theme_support( 'widgets' ) .

    
respondido por el Jan Fabry 24.03.2011 - 16:04

Lea otras preguntas en las etiquetas