web-dev-qa-db-ja.com

カスタムフィールドに段落を自動追加しますか?

皆さん、こんにちは。段落付きのカスタムフィールド入力ボックスのテキストを自動的にフォーマットすることは可能ですか。

例えば改行があるときに「段落を自動追加」と言うオプションがある通常のテキストウィジェットのように。

私のblogauthorsにタイピングを惜しまないでほしい
カスタムフィールドの各行の末尾にがあります。

それを行う方法はありますか?

更新:

<?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

カスタムフィールドを出力するときになぜapply_filters( 'the_content', $var );を使わないのですか?余分な段落をsaveにしたくない場合は、カスタムフィールドを編集するときに表示されることになります。これはWordPressで起こることではありません。

the_contentが何をするのか(それがwpautopを含む多くのことをする)に満足していないなら、このようなカスタムフィルタを作成してください:

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

乾杯!

3
kovshenin

それらのデータをDBに保存するときに、wpautop()Codex ref )を通じてユーザー入力データを渡すことができますか?

編集:

ユーザー入力を検証/サニタイズするには、次のようなことをする必要があります。

/* 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');

wpautop()を渡す前に、ユーザー入力をwp_kses()にラップしたことに注意してください。

1
Chip Bennett