WordPress の get_the_content を活用すれば HTML が分からない人にも簡単に更新できるホームページを提供できる

WordPress で記事を出力する際に the_content() を使うと思いますが、get_the_content() で記事を取得することも可能です。
例えば以下のように区切った文章をひとつずつボックスにするといった場合。

1
2
3
4
5
テキスト1
--------------------------------------------------
テキスト2
--------------------------------------------------
テキスト3

コードは以下のようになります。

1
2
3
4
5
6
7
8
9
10
11
<?php
if(have_posts()):while(have_posts()):the_post();
$separator = '--------------------------------------------------';
$str = explode($separator, get_the_content());
endwhile;endif;
foreach($str as $value) {
	echo '<div class="box"'>;
	echo apply_filters('the_content', $value);
	echo '</div>';
}
?>

以下のようにして、自分で br タグなどを付加していくのも良い手段に感じるかもしれませんが、こうすると table などのタグの改行にも br タグを入れてしまうので、このような場合には使えませんね。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if(have_posts()):while(have_posts()):the_post();
$separator = '--------------------------------------------------';
$str = explode($separator, get_the_content());
endwhile;endif;
foreach($str as $value) {
	echo '<div class="box"'>;
	$content = ltrim($value);	// 先頭の空白を除去
	$content = rtrim($content);	// 文末の空白を除去
	$content = nl2br($content);	// 改行コードに br タグを追加
	echo $content;
	echo '</div>';
}
?>

とりあえず、この方法を使えば、線で区切るだけでボックス毎に切り分けたり、点をつけるだけでその行をリストとして出力したりすることが可能になってきますね。

コメント

コメントは受け付けていません。