single.phpのmoreでfloatをclearしたい

シングルページでmoreで”clear left”をしたい時ってあると思う。

■例1(テンプレートに書く)

<?php
global $more;    // Declare global $more (before the loop).
$more = 1;       // Set (inside the loop) to display all content, including text below more.
the_content('<br clear="all">');
?>

■例2(function.phpとCSS)

function add_more_span_class( $content ) {
    $content = preg_replace('/(more-[0-9]+)/', '$1" class="more-span', $content);
    return $content;
}
add_filter( 'the_content', 'add_more_span_class');
.more-span {
    display: block;
    clear: both;
}

■例3(function.php)

function _my_custom_func($content){
    global $post;
    if(!is_single()){
        return $content;
    }
    return str_replace('<span id="more-' . $post->ID . '"></span>', '<span id="more-' . $post->ID . '"></span><br clear="all">', $content);
}
add_filter('the_content', '_my_custom_func', 12);

WordPressのバージョンやCSSの作り方によるのかも知れないが、1、2は微妙だった。
3は上手くできたし、手軽でいいかも。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)