皆さん、こんにちは。段落付きのカスタムフィールド入力ボックスのテキストを自動的にフォーマットすることは可能ですか。
例えば改行があるときに「段落を自動追加」と言うオプションがある通常のテキストウィジェットのように。
私の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; ?>
カスタムフィールドを出力するときになぜ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 );
乾杯!
それらのデータを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()
にラップしたことに注意してください。