it-swarm.com.de

Widgets vollständig deaktivieren

Wie entferne ich die Widget-Unterstützung vollständig von einem Theme/Plugin?

Entfernen Sie beispielsweise die Seite Erscheinungsbild -> Widgets und verhindern Sie, dass WP Widget-Klassen und alle mit dem Widget zusammenhängenden Elemente lädt.

2
onetrickpony

Eine Möglichkeit wäre, einfach den Widget-Code aus der sidebar.php-Datei sowie den Kopf-/Fuß-/Postseiten zu entfernen, wenn sie Widgets verwenden.

Werfen Sie jedoch einen Blick auf dieses Code-Snippet (mit freundlicher Genehmigung von this site ), das Sie zu Ihrer Datei functions.php hinzufügen können und das die Widgets deaktiviert. Ich denke, dies wäre ein sauberer Ansatz, wenn Sie Themen ändern und Widgets deaktiviert haben möchten.

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

Beachten Sie, dass hierdurch nur die Widgets auf Ihrer Homepage deaktiviert werden. Daher müssen Sie die zusätzlichen Bedingungen für einzelne Seiten/Posts/usw. finden.

4
Dillie-O

Wenn Sie die internen Funktionen von widgets.php nutzen, ist das so einfach:

    // 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'
3
kaiser

remove_theme_support ('widgets') funktioniert nicht wegen:

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 );
}
2
theck

Der Menüpunkt "Widgets" wird durch wp_widgets_add_menu() hinzugefügt, der im Hook _admin_menu aufgerufen wird, wie durch wp_maybe_load_widgets() eingerichtet. Sie können dies deaktivieren, indem Sie den Haken von _admin_menu lösen oder false für load_default_widgets zurückgeben.

Sie können auch die Registrierung aller Seitenleisten aufheben, wie von Bainternet vorgeschlagen, und remove_theme_support( 'widgets' ).

1
Jan Fabry