您在使用不断变化的语言在wordpress中执行一些代码,但是如果在其他地方处理问题,有人可以帮助我吗?
<?php
if(ICL_LANGUAGE_CODE=='en'):
$loop = new WP_Query( array(
'post_type' => 'shapes_en',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'asc',
)
);
if ($loop):
while ( $loop->have_posts() ) : $loop->the_post();
elseif(ICL_LANGUAGE_CODE=='he'):
$loop = new WP_Query( array(
'post_type' => 'shape',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'asc',
)
);
if ($loop):
while ( $loop->have_posts() ) : $loop->the_post();
endif;
?>
<li>
<a href="<?php the_permalink()?>"><?php the_post_thumbnail('idustry-thumbnail'); ?></a>
<h3><a href="<?php the_permalink()?>"><?php the_title()?></a></h3>
</li>
<?php endwhile;
endif;?>
答案 0 :(得分:0)
while:
语法需要endwhile;
,否则无法知道while
块停止的位置。由于缺少endwhile;
语句,PHP认为elseif;
仍在while循环中,因此elseif;
是意外的。
在每种情况下,替代语法的基本形式是将左大括号更改为冒号(:)并将右大括号更改为 endif; , endwhile; , endfor; , endforeach; 或 endswitch; 。
将您的代码更改为:
if ($loop):
while ($loop->have_posts()):
$loop->the_post();
endwhile;
elseif (ICL_LANGUAGE_CODE == 'he'):
...
我不知道在编写wordpress模板时是否需要使用替代语法,但除非您正在编写模板,否则我建议使用带有卷曲括号的常规语法,因为它通常更容易读取。
if ($loop) {
while ($loop->have_posts()) {
$loop->the_post();
}
}
elseif (ICL_LANGUAGE_CODE == 'he') {
...