指定したカテゴリーを会員専用ページにする時の備忘録
前に書いた方法を応用しただけですが、気持ち単純に
“single.php”
振り分け用
“single-public.php”
一般公開用ページ
ログインしてなくtも閲覧できるカテゴリーに属する投稿用
“single-logged.php”
ユーザーページ
要ログインに指定したカテゴリーに属する投稿用
single.php サンプル
<?php
if(in_category(35))
{
include ( TEMPLATEPATH . "/single-logged.php" );
} else {
include ( TEMPLATEPATH . "/single-public.php" );
}
?>
カテゴリーID, 35に属する記事にアクセスがあったら、single-logged.phpを開き、それ以外なら single-public.phpを開く。
複数カテゴリーの場合は
<?php
if(in_category(35) || in_category(40))
{
include ( TEMPLATEPATH . "/cat-logged.php" );
} else {
include ( TEMPLATEPATH . "/single-public.php" );
}
?>
single-public.php サンプル
<?php get_header() ?>
<div id="content">
<?php if(have_posts()): ?><?php while(have_posts()):the_post(); ?>
<div class="post">
<h2><?php the_title(); ?></h2>
<div class="entry">
<?php the_content(); ?> </div>
</div>
<?php endwhile; ?>
<?php else: ?>
<div class="post">
<h2><?php _e('Not Found'); ?></h2>
</div>
<?php endif; ?>
</div>
<?php get_sidebar() ?>
<?php get_footer() ?>
single-public.phpの中は、従来のsingle.phpと、同じ内容で
single-logged.php サンプル
<?php get_header() ?>
<div id="content">
<?php if(is_user_logged_in()) {?>
<?php if(have_posts()): ?><?php while(have_posts()):the_post(); ?>
<div class="post">
<h2><?php the_title(); ?></h2>
<div class="entry">
<?php the_content(); ?>
</div>
</div>
<?php endwhile; ?>
<?php else: ?>
<div class="post">
<h2><?php _e('Not Found'); ?></h2>
</div>
<?php endif; ?>
<?php } else { ?>
<div class="post">
<h2>会員専用</h2>
<div class="entry">
このページは会員専用です。閲覧するにはユーザー登録が必要です。
会員の方はログインしてください。
ログインフォームなどのリンク
</div>
</div>
<?php } ?>
</div>
<?php get_sidebar() ?>
<?php get_footer() ?>
指定したカテゴリーにアクセスがあった場合、このページが表示され、ログインしていればコンテンツが表示され、ログインしてなけrばメッセージが表示される。
<?php if(is_user_logged_in()) ?>
コンテンツ
<?php } else { ?>
メッセージ
<?php } ?>
シングルページをケースに書きましたが、カテゴリーページの記事一覧から閲覧されないように、同様にファイルを作る必要があります。
category.php
振り分け用
category-public.php
一般公開用
category-logged.php
ユーザー用
こんな感じで
あとは、トップページやアーカイブなどの記事一覧から会員専用カテゴリーの記事を外して、フィードからも外す。
PR