如何根据用户是否登录,有条件地为主页加载HTML?
目前我的主题有一个索引。php文件。在我试图创建的文件中:
<?php
if(is_user_logged_in()) {
get_header(); ?>
<div id="primary" class="content-area">
<div class="primary-inner">
<div id="content" class="site-content content-list" role="main">
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
get_template_part( \'content\', get_post_format() );
endwhile;
dw_minion_content_nav( \'nav-below\' );
else :
get_template_part( \'no-results\', \'index\' );
endif;
?>
</div>
</div>
</div>
<?php get_sidebar(\'secondary\'); ?>
<?php get_footer(); ?>
<?php } else { ?>
// load plain ol\' static boring HTML here with a login widget area.
<?php
} ?>
然而,这不起作用。事实上,无论我在指数上做了什么改变。php文件,没有其他更改。我甚至可以删除该文件,而且效果很好!!
我可以看到我有一个标题。php文件。如果修改该文件,则可以看到出现的更改。但是,这意味着我必须修改它,footer。php,第页。php,内容。php等,最终有多个文件,其中包含条件逻辑。
我是Wordpress的新手。必须有更好的方法才能做到这一点,对吗?
如果此人未登录,则应显示一个完全不同的主页模板/设计,其中有一个小部件区域,其中显示WP登录表单(bp登录小部件)。该用户登录后,将显示带有默认模板的正常主页。
在阅读过程中,设置了一个静态页面,该页面的模板为“默认模板”
最合适的回答,由SO网友:Pieter Goosen 整理而成
首先检查“阅读设置”中是否没有设置为首页的页面。如果设置了,index.php
不是用作主页,而是设置为首页的页面模板。
在这种情况下,您需要找到该模板并添加条件。
<?php
if(is_user_logged_in()) {
get_header(); ?>
<div id="primary" class="content-area">
<div class="primary-inner">
<div id="content" class="site-content content-list" role="main">
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
get_template_part( \'content\', get_post_format() );
endwhile;
dw_minion_content_nav( \'nav-below\' );
else :
get_template_part( \'no-results\', \'index\' );
endif;
?>
</div>
</div>
</div>
<?php get_sidebar(\'secondary\'); ?>
<?php get_footer(); ?>
<?php } else { ?>
YOU CAN CREATE A PAGE TEMPLATE HERE THAT WILL SHOW IF USER IS NOT LOGGED IN
YOU CAN ALSO ADD A LOGIN WIDGET HERE.
<?php
} ?>