WordPress小ネタ:記事の表示範囲を会員/非会員の区別によって任意の位置で区切る
旧聞ですが最近使ったネタをば。
日経やasahi.comみたいに、会員と非会員で表示を分ける方法。
普通は single.php に
<?php if(is_user_logged_in()): the_content(); else: the_excerpt(); ?> <p>この記事は会員限定です。 ……………</p> <?php endif; ?>
みたいにするわけですが、興味を引きつけたい記事なのに先頭から○○文字とかで自動的にぶった切られてしまいます。できれば <!-- more --> の位置まで見せたい。
そういう時は、単体記事ページでも more の動作を使うためのひと工夫を。
Function Reference/the content :: Overriding Archive/Single Page Behavior
http://codex.wordpress.org/Function_Reference/the_content#Overriding_Archive.2FSingle_Page_Behavior
<?php if(is_user_logged_in()): the_content(); else: global $more; $more = 0; the_content(''); ?> <p>この記事の続きは会員限定です。 ……………</p> <?php endif; ?>
みたいな内容を書けば、非会員の会員登録を誘引できそうな位置で、記事を一旦切ることが出来ると。便利便利。