Problema con la salida de texto en WordPress ('esc_html' y 'wp_richedit_pre')
Tengo un problema con la salida de texto. Cuando edito el texto en el panel de control de WordPress todo se ve normal:
https://i.sstatic.net/GaIut.png
pero cuando lo muestro en html:
<?php esc_html( wp_richedit_pre( $_product->details ) ); ?>
Se ve así:
https://i.sstatic.net/r81xE.png
¿Qué podría estar mal? Por favor ayuda.

Asumiendo que $_product->details
contiene lo que puede denominarse como contenido de la publicación, y contiene HTML, y deseas que ese HTML sea interpretado por el navegador, entonces lo estás haciendo mal.
Por favor, consulta la función esc_html
y experimenta con ella en un entorno de pruebas - pronto descubrirás que lo que hace la función (tal como dice el Codex) es escapar el HTML, es decir, transforma los símbolos especiales en entidades HTML, por lo que estos símbolos se muestran como símbolos y no son interpretados por tu navegador.
echo esc_html('<b>un texto</b>'); // Produce <b>un texto</b>
echo '<b>un texto</b>'; // Produce <b>un texto</b>
Así que la respuesta breve a tu problema parece ser: elimina la función esc_html
que envuelve la salida.

hmm ... extraño. Miré el archivo 'wp-includes/formatting.php' en la función wp_richedit_pre:
function wp_richedit_pre($text) {
// Filtrar un texto vacío resulta en un molesto <br />\n
if ( empty($text) ) return apply_filters('richedit_pre', '');
$output = convert_chars($text);
$output = wpautop($output);
$output = htmlspecialchars($output, ENT_NOQUOTES);
return apply_filters('richedit_pre', $output);
}
En lugar de 'wp_richedit_pre()' usé 'wpautop()' y funciona.
https://i.sstatic.net/Jiuiy.png
Gracias por la pista Soulseekah.
