Disbale widgets padrão na ativação do tema

Eu quero desativar todos os widgets padrão na ativação do tema que estão ativos por padrão para a nova instalação do WordPress.

Estou usando a seguinte function como retorno de chamada para a ativação do tema:

if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) { // } 

Por padrão, os widgets ativados são:

  1. Pesquisa

  2. Postagens recentes

  3. comentários recentes

  4. Arquivos

  5. Categorias

  6. Meta

Eu não quero desregitá-los permanentemente, mas ocultar da barra lateral.

Isso é possível ??

Solutions Collecting From Web of "Disbale widgets padrão na ativação do tema"

Os widgets padrão geralmente não são ativados com o tema. Os temas adicionam widgets padrão no arquivo de modelo da barra lateral. Por exemplo, veja o arquivo do sidebar.php de vinte dez.

 < ?php /** * The Sidebar containing the primary and secondary widget areas. * * @package WordPress * @subpackage Twenty_Ten * @since Twenty Ten 1.0 */ ?>  

como você pode ver os widgets padrão (que neste caso são: pesquisa, arquivos e meta) são codificados em uma verificação condicional de barra dynamic_sidebar para ver se esta barra lateral possui widgets definidos pelo usuário.

Então, para responder a sua pergunta, certifique-se de que seu arquivo de barra lateral não possui widgets padrão dentro da verificação condicional dynamic_sidebar() .

Atualizar:

Estou fortemente contra a remoção dos widgets configurados e salvos de um tema usado anteriormente e acho que você não deve fazê-lo, mas se você pode, então, você pode capturar a ativação do tema e acionar uma function simples para limpar widgets salvos, ex:

 if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) { add_action('admin_footer','removed_widgets'); } function removed_widgets(){ //get all registered sidebars global $wp_registered_sidebars; //get saved widgets $widgets = get_option('sidebars_widgets'); //loop over the sidebars and remove all widgets foreach ($wp_registered_sidebars as $sidebar => $value) { unset($widgets[$sidebar]); } //update with widgets removed update_option('sidebars_widgets',$widgets); }