PHP新手求助:WordPress内部If语句异常,仅输出"2022."
WordPress内部if语句失效问题解决
你的代码核心问题是误用了WordPress的时间函数:
the_time('Y')是输出型函数,它会直接把当前文章的年份打印到页面,而不是返回年份字符串供条件判断。所以执行代码时,它先输出了当前文章的年份(也就是你看到的"2022"),然后拿函数的返回值(默认是null)和"2021"比较,条件永远不成立,导致后续的echo "Loop"和$c++都不会执行。
修正后的代码:
<?php $c = 0; if ( have_posts() ) : while ( have_posts() ) : the_post(); if (get_the_time('Y') == "2021") : echo "Loop"; $c++; endif; endwhile; endif; echo "Count = $c"; ?>
关键改动说明:
- 用
get_the_time('Y')替代the_time('Y'):这个函数是返回型函数,会返回当前文章的年份字符串,不会直接输出,能正确参与条件判断。 - 当文章年份为2021时,会输出"Loop"并累加计数器,最后输出统计结果。
内容的提问来源于stack exchange,提问作者Charles Stangor
相关产品推荐
相关产品推荐

