这实际上是一个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\';
}