WordPress:続きを読むがうまく効かない時はsetup_postdata($post)をした後にglobal $more; $more = 0;をすればよい

自分のサイトでは”続きを読む”機能はぜんぜん使っていないんだけど、依頼を受けたサイトで、固定ページにあるカテゴリの記事を10件ほど表示することになりました。

実は、”続きを読む”機能は、トップページだけに有効らしく、single.phpや他のページに WordPressループを使って記事を表示させるときには、記事全てが表示されてしまうそうな。

で、ググってみたところ、下記のサイトを発見。

ワードプレス(WordPress)で「続きを読む」を実装する方法 #wp – ちほちゅう

こちらのサイトでは、単一記事でしたが、私の場合は記事を10件表示させていたので、

	$array = array(
			    'numberposts' => 10,
			    'post_type' => 'post',
			    'category' => '4',
			    );  
			                                      
			 $posts = get_posts( $array );
			 global $post;
			 
			 
			
			 if($posts): foreach($posts as $post): setup_postdata($post);
								
				global $more;
				$more = 0;

この部分に、global $moreと $more=0をいれることで、無事に意図したところまでを表示させることができました。