Problemă cu afișarea textului în WordPress ('esc_html' & 'wp_richedit_pre')
Am o problemă cu afișarea textului. Când editez textul în panoul de control WordPress totul arată normal:
https://i.sstatic.net/GaIut.png
dar când îl afișez în html:
<?php esc_html( wp_richedit_pre( $_product->details ) ); ?>
Arată astfel:
https://i.sstatic.net/r81xE.png
Ce ar putea fi în neregulă? Vă rog ajutor.

Presupunând că $_product->details
conține ceea ce poate fi numit conținutul postării și conține HTML, iar tu vrei ca acel HTML să fie interpretat de browser, atunci o faci greșit.
Te rog să consulți funcția esc_html
și să experimentezi cu ea într-un mediu de test - vei descoperi în curând că ceea ce face funcția (așa cum spune și Codex-ul) este să escapeze HTML-ul, adică să transforme orice simbol special în entități HTML, astfel încât aceste simboluri să fie afișate ca simboluri și nu să fie interpretate de browserul tău.
echo esc_html('<b>un șir de caractere</b>'); // Produce <b>un șir de caractere</b>
echo '<b>un șir de caractere</b>'; // Produce <b>un șir de caractere</b>
Deci răspunsul scurt la problema ta pare a fi - elimină funcția esc_html
din jurul output-ului.

hmm ... ciudat. M-am uitat în fișierul 'wp-includes/formatting.php' la funcția wp_richedit_pre:
function wp_richedit_pre($text) {
// Filtrarea unui text gol rezultă într-un enervant <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);
}
În loc de 'wp_richedit_pre()' am folosit 'wpautop()' și funcționează.
https://i.sstatic.net/Jiuiy.png
Mulțumesc pentru indiciu Soulseekah.
