web-dev-qa-db-fra.com

Ajouter automatiquement des paragraphes au champ personnalisé?

hé les gars, est-il possible de formater le texte dans une zone de saisie de champ personnalisé automatiquement avec des paragraphes?

par exemple. comme le widget texte normal qui a la possibilité de dire "ajouter des paragraphes automatiquement" quand il y a un saut de ligne.

Je veux juste que mes auteurs de blog épargnent la dactylographie
à la fin de chaque ligne d'un champ personnalisé!

y a-t-il un moyen de le faire?

mettre à jour:

<?php if (have_posts()) : ?>
                <?php while (have_posts()) : the_post();
                    $sidebar_title = get_post_meta($post->ID, 'sidebar-title', $single = true);
                    $sidebar_text = get_post_meta($post->ID, 'sidebar-text', $single = true); ?>

                    <?php if ( $sidebar_title !== '' && $sidebar_text !== '' ) { ?>
                        <li class="widget-container widget-light-blue custom">  
                            <h3 class="widget-title"><?php echo wpautop($sidebar_title, $br); ?></h3>
                            <?php echo wpautop($sidebar_text, $br); ?>
                        </li>
                    <?php } ?>

                <?php endwhile; ?>
            <?php endif; ?>
2
mathiregister

Pourquoi n'utilisez-vous pas apply_filters( 'the_content', $var ); lors de l'affichage de votre champ personnalisé? Vous ne voulez pas vraiment enregistrer les paragraphes supplémentaires, sinon vous finirez par les voir lors de la modification du champ personnalisé. Ce n'est pas ce qui se passe avec WordPress.

Si vous n'êtes pas satisfait de ce que fait the_content (il fait beaucoup de choses, y compris wpautop), créez un filtre personnalisé comme celui-ci:

// Assuming $var is your custom field value
add_filter( 'my_custom_filter', 'wpautop' );
echo apply_filters( 'my_custom_filter', $var );

À votre santé!

3
kovshenin

Pouvez-vous transmettre les données saisies par l'utilisateur via wpautop() ( référence Codex ) lorsque vous enregistrez ces données dans la base de données?

MODIFIER:

Vous devriez faire quelque chose comme ce qui suit pour valider/assainir l’entrée utilisateur:

/* Function to validate, sanitize, and save post metadata. */
function mytheme_save_custom_metadata(){

  global $post;

  $valid_custom_field_input = wp_kses( wpautop( $_POST['custom_meta_field'] ) );

  update_post_meta($post->ID, 'custom_meta_field', $valid_custom_field_input );
}
/* Add our function to the save_post hook. */
add_action('save_post', 'mytheme_save_custom_metadata');

Remarquez que j'ai mis enveloppé l'entrée utilisateur dans wpautop() avant de passer à travers wp_kses().

1
Chip Bennett