WordPressでログインしている場合のみ特定カテゴリを表示

WordPressでログインしている場合のみ特定カテゴリを表示

ログインしている場合のみ特定カテゴリを表示

ワードプレスでフォトログ的なものを作ったのですが、特定カテゴリはログインユーザーにしか見せたくなかったので、その際の記述をメモ。「get_posts」で作りたかったのですが、ページ送りプラグインの「wp_pagenavi」がうまく動かなかったので「query_posts」を使いました。ログインしている時の表示は「is_user_logged_in」を使えばいいんですね。
「cat=-2」でログアウト時に指定のカテゴリIDが非表示になります。「cat=2」ならそのカテゴリのみ表示。

<?php if( is_user_logged_in() ) : ?>

<?php $paged = get_query_var( 'paged' ); ?>
<?php query_posts('posts_per_page=30&paged='.$paged); ?>
<? while ( have_posts() ) : the_post() ?>

ログイン時の表示

<?php endwhile; ?>
<?php wp_reset_query(); ?>

<?php else : ?>

<?php $paged = get_query_var( 'paged' ); ?>
<?php query_posts('cat=-2&posts_per_page=30&paged='.$paged); ?>
<? while ( have_posts() ) : the_post() ?>

ログアウト時の表示

<?php endwhile; ?>
<?php wp_reset_query(); ?>

<?php endif; ?>

管理者以外のユーザーはプラグインの「Peter’s Login Redirect」を使ってログイン後はダッシュボードではなく、トップページにリダイレクトさせました。

ログイン画面のロゴ画像変更

ログイン画面のロゴ画像を変更する場合は「functions.php」に以下を記述

// ログイン画面のロゴ変更
function custom_login_logo() { ?>
	<style>
		.login #login h1 a {
			width: 300px;
			height: 200px;
			background: url(<?php echo get_stylesheet_directory_uri(); ?>/images/ロゴ.png) no-repeat 0 0;//URLは変更してください
		}
	</style>
<?php }
add_action( 'login_enqueue_scripts', 'custom_login_logo' );

function login_logo_url() {
    return get_bloginfo('url');
}
add_filter('login_headerurl', 'login_logo_url');

function login_logo_title(){
    return get_bloginfo('name');
}
add_filter('login_headertitle','login_logo_title');
No tags for this post.