Saída de frontend do WP de campos textarea personalizados que não respeitam as quebras de linha. No admin está tudo bem

3

Saída de frontend do WP de campos de texto personalizados que não respeitam as quebras de linha. No admin, tudo bem.

Agora eu estou usando isso:

<?php $options = get_option('my_custom_plugin_options'); ?>
<?php echo $options['my_custom_plugin_options_textarea']; ?>

A saída no frontend é esta:

  

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris   aliquet elementum mi, ac adipiscando metus, suscipit in. Quisque   venenatis ante non nulla faucibus viverra. Em ultriscos nisl sente-se amet   quam commodo ut feugiat magna aliquet. Aenean sente-se amet odio magna.   As mecenas pretendem assinar um documento com dignidade digna. Aenean   rhoncus elementum nisi, nec euismod est tempus commodo.

Em vez de salvo:

  

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

     

Mauris aliquet elementum mi, ac adipiscando metus.

     

Quisque venenatis ante non nulla faucibus viverra.

     

Em ultrassons, sente-se um quam comodo utug feugiat magna aliquet.   Aenean sente-se amet odio magna.

     

As crianças pretendem apresentar uma mensagem digna de dizer. Aenean   rhoncus elementum nisi, nec euismod est tempus commodo.

No admin, ele é salvo com tantas quebras de linha e tudo bem. Como fazer isso no meu frontend também?

    
por Derfder 30.08.2013 / 15:41

4 respostas

5

Exploda seu valor $ options por "/ n" (nova linha) e faça um eco em foreach:

$options = get_option('my_custom_plugin_options');
$textarea = $options['my_custom_plugin_options_textarea'];
$lines = explode("\n", $textarea);

foreach( $lines as $line ){
  echo $line;
}

UPDATE # 1

Para referência, é possível armazenar essa função em functions.php para usar posteriormente em arquivos de modelo.

function the_textarea_value( $textarea ){
        $lines = explode("\n", $textarea);
        foreach( $lines as $line ){
          echo $line;
        }
}

espero que ajude!

    
por iEmanuele 30.08.2013 / 15:54
6

Você pode simplesmente usar a função nl2br do PHP

Isso deve estar funcionando para você:

echo nl2br( get_option('my_custom_plugin_options') );

    
por Krzysztof Matuszak 04.11.2014 / 21:18
3

Eu fiz outra função para fazer isso e funciona no meu caso:

function the_textarea_value( $textarea ){
    return str_replace("\r\n", '<br>', $textarea); 
}
    
por Marcin Bazanowski 15.01.2014 / 04:55
0

Elaborar a resposta de Pieter Goosen acima, usando a função nl2br em PHP alcançará o resultado desejado.

// Load a customizer setting into a variable
$textarea = get_theme_mod('your_customizer_setting');

// Is there any text in our textarea?
if( !empty($textarea) )
{
    // Once we verify the variable isn't empty, run nl2br
    $textarea = nl2br($textarea);

    // This echos the altered text to the page
    echo $textarea;

}

Exemplo de entrada:

  

Esta é uma linha de texto que eu inseri no Google.   e esta é a linha abaixo dela

(A quebra de linha acima teria sido criada pressionando enter )

Exemplo de saída:

This is a line of text that I've entered<br>
and this is the line below it
    
por Ian Svoboda 26.01.2017 / 16:34

Tags