我想在公开的WordPress博客中隐藏某些类别,但是可以通过登录用户查看这些类别。
如果公众访问受限制的类别,则应显示一个登录框,他们必须登录才能查看该类别
我有WordPress的is_user_logged_in函数,但不知道如何将它用于此目的。我应该将什么添加到我的functions.php中?
我已尝试过这段代码,但可以让它运行起来:
add_action( 'init', 'check_redirect_page' );
function check_redirect_page() {
if ( !is_user_logged_in() && !is_category( 177 ) ) {
wp_redirect( home_url( '/login' ) );
exit();
}
}
有没有人有任何其他建议?它对我不起作用:(
答案 0 :(得分:0)
<强>予。类别模板
您可以开始为要隐藏的类别构建类别模板:
http://codex.wordpress.org/Category_Templates
E.g。的类别-slug.php 强>
在此页面上,您可以执行以下操作:
<?php if ( is_user_logged_in() ): ?>
<?php
// start The Loop
// see http://codex.wordpress.org/The_Loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
the_content();
// etc.
?>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
<?php else:
wp_redirect( home_url( '/login' ) );
exit();
endif; ?>
http://codex.wordpress.org/Function_Reference/is_user_logged_in http://codex.wordpress.org/Function_Reference/wp_login_url
此外,我假设您想要一个模式/弹出窗口供用户登录。 为此你可以尝试:
http://wordpress.org/plugins/wp-modal-login/或 http://wordpress.org/plugins/simplemodal-login/ - 虽然我没有测试过。
对于会员插件... http://wordpress.org/plugins/wp-members/你可以成为你的朋友。
<强> II。或者你可以试试(简单的方法):
<?php
add_action( 'init', 'check_redirect_page' );
function check_redirect_page() {
if ( !is_user_logged_in() && is_category( 177 ) ) {
wp_redirect( home_url( '/login' ) );
exit();
}
}
?>
正如你所说,这段代码应该存在于你的functions.php。
中答案 1 :(得分:0)
要使第二个解决方案起作用,请将[ init ]替换为[ wp ]
新代码如下:
/**
* Make category members only and redirect non-members to login page.
*/
add_action( 'wp', 'check_redirect_page' );
function check_redirect_page() {
if ( !is_user_logged_in() && is_category( 91 ) ) {
wp_redirect( home_url( '/wp-admin' ) );
exit();
}
}
将 91 替换为您的类别ID,并将 / wp-admin 替换为您的网站登录信息。