web-dev-qa-db-fra.com

Champ personnalisé perdant p tags sur l'affichage

J'ai un type de message personnalisé qui a plusieurs champs personnalisés. L'un des champs est multiligne et comprend du texte avec p balises.

Lorsque je visualise ce champ dans l'éditeur visuel, les balises p sont toutes présentes.

Je soupçonne que le problème est de savoir comment j'affiche les données dans un modèle personnalisé.

C’est le code que j’utilise dans le modèle pour extraire ce champ personnalisé

 <?php $key="story"; echo get_post_meta($post->ID, $key, true); ?>

Est-ce le get_post_meta qui supprime ces balises ou autre chose? Si c'est le cas, que devrais-je utiliser à la place?

Merci pour les indices

2
Colin

Ajoutez ceci à votre fichier functions.php:

add_filter( 'meta_content', 'wptexturize' );
add_filter( 'meta_content', 'convert_smilies' );
add_filter( 'meta_content', 'convert_chars' );
add_filter( 'meta_content', 'wpautop' );
add_filter( 'meta_content', 'shortcode_unautop' );
add_filter( 'meta_content', 'prepend_attachment' );

Ensuite, utilisez ce code pour extraire le résultat:

<?php $story_content = get_post_meta($post->ID, 'story', true); echo apply_filters('meta_content', $story_content); ?>
3
Seth Alling

Essaye ça:

$key="story";
$content = get_post_meta($post->ID, $key, true);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]&gt;', $content);
echo $content;

Cela devrait obtenir votre champ personnalisé et appliquer des filtres (avec les balises p)

2
Lukas J.