1

次の関数を使用して、WordPress 投稿のコンテンツを 3 列に自動的に出力しています。ただし、画像を含む最小限のコンテンツが投稿に追加されると、関数は img タグ HTML の途中で別の列のコンテンツを分割し、画像とコンテンツを分割します。

これを解決する方法はありますか?

function content_split($text, $separator = '<hr/>', $start = false ) {

if ( $start === false) {
    $string = '';
    $start = ceil(strlen($text) / 3);

    $string.= substr($text,0,$start);
    $string.= $separator;
    $string.= substr($text,$start,$start);
    $string.= $separator;
    $string.= substr($text,($start*2),$start);

    return $string;
}

$lastSpace = false;
$split = substr($text, 0, $start - 1);

// if the text is split at a good breaking point already.
if (in_array(substr($text, $start - 1, 1), array(' ', '.', '!', '?'))) {

$split .= substr($text, $start, 1);
// Calculate when we should start the split
$trueStart = strlen($split);

// find a good point to break the text.
} else {

$split = substr($split, 0, $start - strlen($separator));
$lastSpace = strrpos($split, ' ');

if ($lastSpace !== false) {
$split = substr($split, 0, $lastSpace);
}
if (in_array(substr($split, -1, 1), array(','))) {
$split = substr($split, 0, -1);
}

// Calculate when we should start the split
$trueStart = strlen($split);
}
//now we know when to split the text
return substr_replace($text, $separator, $trueStart, 0);

}
4

0 に答える 0