テクノロジー・動画・写真・デザインとか

2ステップでWordPressのmoreの前後で記事を簡単に分割する方法

WordPress記事内に<!–more–>のコードを入れると、その<!–more–>よりも前にある文章が抜粋記事として表示されるのだが、その箇所の文章の前後を分割して特定のボタンとかバナーを入れたやり方をまとめてみた。

イメージとしては、こんな感じだ。

<!–more–>よりも前の文章
[バナーとかボタンとか、PHPのコードとか]
<!–more–>よりも後の文章

Adsenseのバナーを貼っている人なんかは、これは使えるのではないだろうか。
導入したのは、Wordpressのtwentyelevenのテーマだ。

ちなみに、単純にバナーのみの挿入だったら専用のプラグインがあるが、今回はカスタムフィールドとPHPコードを挿入したかったため、この手順を使っている。

①function.phpにコードを追記

では、早速手順を追ってみよう。
まずは、下記のコードをテーマフォルダの中に入っているfunction.phpに追記する。

続きを読む


function get_the_divided_content( $more_link_text = null, $stripteaser = 0, $more_file = '' ) {
	$regex = '#(<p><span id="more-[d]+"></span></p>|<span id="more-[d]+"></span>)#';
	$content = get_the_content( $more_link_text, $stripteaser, $more_file );
	$content = apply_filters( 'the_content', $content );
	$content = str_replace( ']]>', ']]&gt;', $content );
	if ( preg_match( $regex, $content ) ) {
		list( $content_array['before'], $content_array['after'] ) = preg_split( $regex, $content, 2 );
	} else {
		$content_array['before'] = '';
		$content_array['after'] = $content;
	}
	return $content_array;
}

②function.phpに追記した処理を呼び出して表示

続いては、function.phpに追記した処理を呼び出して表示させるための呼び出しコードを記述だ。
記述する箇所は、テーマフォルダのcontent-single.php。

content-single.phpを開いたら下記のコードを検索。


<?php the_content(); ?>

そしたら下記のように書き換えて終了!
簡単だね!


<?php //the_content(); //コメントアウトにしたが、要らない場合は削除 ?>
<?php $content = get_the_divided_content(  ); ?>
<?php echo $content['before']; ?>
ココに追記したいバナーとかを追加!!!
<?php echo $content['after']; ?>

参照したのはこちら。
http://ja.forums.wordpress.org/topic/1114
これを作ってくれた人に感謝!

カテゴリ:WordPress