一般来说,我认为应该使用CSS来处理列布局,而无需更改生成的HTML。列数可能需要随设备等更改。
所以在这里,我只想看看这句话:
这可以检查它是否是最后一篇文章:
( ( 1 == $wp_query->current_post + 1 ) == $wp_query->post_count )
这看起来相当复杂,很可能会减慢开发人员尝试评估此表达式的速度。
让我们深入了解一下:
这个$wp_query->current_post
有-1
作为初始值,循环中的每个帖子都会增加该值。
以下源参考与此相关:
https://core.trac.wordpress.org/browser/tags/4.9.8/src/wp-includes/class-wp-query.php#L488
https://core.trac.wordpress.org/browser/tags/4.9.8/src/wp-includes/class-wp-query.php#L3069
https://core.trac.wordpress.org/browser/tags/4.9.8/src/wp-includes/class-wp-query.php#L3085
https://core.trac.wordpress.org/browser/tags/4.9.8/src/wp-includes/class-wp-query.php#L3115
循环中的第一个帖子
$wp_query->current_post
像
0
. 然后,此语句变为:
( 1 == $wp_query->current_post + 1 ) == $wp_query->post_count
=> ( 1 == 0 + 1 ) == $wp_query->post_count
=> ( 1 == 1 ) == $wp_query->post_count
=> true == $wp_query->post_count
缺少括号,因此我们需要检查运算符的优先级:
https://secure.php.net/manual/en/language.operators.precedence.php
希望我的回答是正确的:-)
循环中的第二个帖子$wp_query->current_post
像1
. 然后语句变成:
( 1 == $wp_query->current_post + 1 ) == $wp_query->post_count
=> ( 1 == 1 + 1 ) == $wp_query->post_count
=> ( 1 == 2 ) == $wp_query->post_count
=> false == $wp_query->post_count
等
因此,检查:
( 1 == $wp_query->current_post + 1 ) == $wp_query->post_count
似乎可以归结为:
true == $wp_query->post_count
循环中的第一个帖子,否则
false == $wp_query->post_count
这可能不是你想要的。
要查看循环中的最后一篇帖子,您似乎在寻找:
current_post(s) | post_count
----------------------------
-1 0
0* 1
0, 1* 2
0, 1, 2* 3
0, 1, 2, 3* 4
...
其中*标记循环中的最后一个post索引。
使用当前帖子索引和帖子计数确定循环(*)中最后一篇帖子的规则似乎是:
$wp_query->current_post + 1 === $wp_query->post_count
在哪里
$wp_query->post_count > 0
.
还可以在此处查看相同的循环结束条件:
https://core.trac.wordpress.org/browser/tags/4.9.8/src/wp-includes/class-wp-query.php#L3115
希望这有助于你进一步调查此事!