“如果已登录”对我不起作用

时间:2015-02-25 作者:Wordpressy

我试图实现代码对未注册用户隐藏部分内容,但对我不起作用,返回时出错这是我尝试的代码

if ( is_user_logged_in() ) {
echo \'<div class="container_12">
<?php while ( have_posts() ) : the_post(); ?>
<?php woocommerce_get_template_part( \'content\', \'single-product\' ); ?>
<?php endwhile; // end of the loop. ?>
</div>}
else {
echo \'you must to log in to see the content\';}
?>

1 个回复
最合适的回答,由SO网友:Travis Seitler 整理而成

这实际上是一个PHP语法错误,而不是WordPress错误。当您发布echo 命令并启动一个文本字符串(使用单引号或双引号),PHP将读取作为该字符串一部分的所有内容,直到使用相同的引号字符将其关闭。

因此,在您的情况下,您可以使用<div class="contain... 但不要用右引号来结束这行末尾的字符串——因此,就PHP而言,您仍然在发送一个字符串以供其echo使用。这意味着整个代码块被抛出(每个后续的单引号都被视为与其预期目的相反,即开始引号被解读为结束引号,反之亦然),结束方括号(}) 为了这个if 语句被视为文本字符串的一部分,这意味着PHP不会将其视为if 陈述

(这里的另一个问题是,您正在使用<? &;?> 当您已经在PHP块中时。在这种情况下,可以移除这些标记支架。)

所有这些都表明,您可能正在尝试这样做:

if ( is_user_logged_in() ) {
 echo \'<div class="container_12">\';
 while ( have_posts() ) : the_post();
  woocommerce_get_template_part( \'content\', \'single-product\' );
 endwhile; // end of the loop.
 echo \'</div>\';
}
else {
 echo \'you must to log in to see the content\';
}

结束

相关推荐

login page not working

我将我的wordpress网站从旧服务器移动到新服务器,没有任何问题。当我登录到仪表板时,它不工作。页面变为刷新,用密码对错进行检查。没关系。即使它没有显示任何错误。我用新的url(站点url和主页)更改了数据库中的url。我使用相同的用户名和密码检查了本地服务器,它工作正常。将主题文件夹重命名为Twenty12以外的文件夹,但没有成功。重命名插件文件夹。删除Cookie并重新启动浏览器。已启用WP_DEBUG 在仪表板和网站上获取错误警告:session\\u start()[函数.session st