Por que apply_filters retorna uma string não vazia, quando o valor retornado está vazio?

Estou quebrando meu teclado sobre isso. Fez uma instalação adequada, enviou o database para um novo MySQL e trabalhou no uso de temas filho adequadamente. Mas há algo que me assola, não posso descobrir.

Na minha nova instalação ( ver2.whowhatwhy.com ) eu deixei intencionalmente alguns dos meus widgets em branco. Espero que, ao ler o arquivo default-widgets.php no wp, inclui que não haveria nenhum elemento de título que apareça nesse widget.

Em vez disso, o widget de título está sendo exibido porque, por algum motivo, o valor que está sendo passado por apply_filters é um espaço, em vez de um valor em branco quando a $instance['title'] está em branco.

 $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base ); 

Alguém viu isso antes? O problema que tenho é que a instalação original não tem problema com esta chamada (retorna um valor em branco).

Se você for para o site, você pode ver as versões de vários elementos do código:

 function widget( $args, $instance ) { extract($args); $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base ); $text = apply_filters( 'widget_text', empty( $instance['text'] ) ? '' : $instance['text'], $instance ); echo $before_widget; if ( !empty( $title ) ) { echo $before_title . '[' . $title . '] ' . $after_title; } ?> 
<?php echo $after_widget; }

Também removi todos os widgets e, em seguida, substituí o widget único na página. Isto é o que está no database:

@Otto – Eu também olhei no database e eliminei todos os outros widgets. E aqui está o que encontrei:

 a:2:{i:916707761;a:3:{s:5:"title";s:0:"";s:4:"text";s:1333:"

Do you need the truth?
Sign up for our weekly email updates and stay informed.

 
";s:6:"filter";b:0;}s:12:"_multiwidget";i:1;}

Observe onde o a:3 é, você pode ver que o valor do title é uma string vazia sem comprimento.

Então, por que apply_filters retornaria um valor não vazio?

Solutions Collecting From Web of "Por que apply_filters retorna uma string não vazia, quando o valor retornado está vazio?"

O problema está no tema que você está usando. Isso foi relatado antes:

https://core.trac.wordpress.org/ticket/21430

Parece que os Temas elegantes não gostam de seus widgets para não ter títulos. Então eles têm uma function chamada “et_widget_force_title” que altera os títulos em branco em títulos com um único espaço.

Em caso de dúvida, tente sempre desabilitar os plugins e mudar para o tema padrão. Você nunca pode dizer o que outros plugins ou temas estão fazendo.