我有一个自定义帖子类型 - 我们假设它被称为fruit
如果我有一份水果清单,按日期排序:
Apple
Orange
Mango
Pineapple
Orange
如果我通过single.php
加载Mango页面,我想知道它是奇数还是偶数,所以我可以在模板中使用一些稍微不同的CSS类。
我可以按日期顺序获取fruit
类型的所有帖子并循环浏览它们,但这看起来非常浪费。
有更好的方法吗?
答案 0 :(得分:0)
如何使用array_search("Mango",$array)%2
?
答案 1 :(得分:0)
您必须使用自定义查询将sql row number
作为额外参数,然后只需检查php $row_num % 2
请参阅here on how to get the row number in a mysql select statement
您可以在php中执行自定义SQL查询(并绕过wordpress),甚至可以使用wordpress query更改默认WP查询以获取帖子
注意这个方法假设您将选择至少2个帖子并且效率很高(因为mysql处理选择)并且如果帖子ids
确实是按时间顺序排序的话,那么它将起作用。在任何其他需要的顺序。对于单个帖子,可能需要两个select语句(或组合的select语句)(参见下面的替代语句)。
另一种方法是选择所需帖子之前的所有帖子的count
(给定排序),这也会为您提供row number
(或row number +1
)然后像以前一样继续。这可能需要两个select语句(即一个用于post
,一个用于所有先前帖子的count
,直到给定的帖子,根据给定的顺序,例如date
)
答案 2 :(得分:0)
如果您从未删除帖子,则可以在创建帖子时使用帖子标题保存,例如 O_Mango 或 E_Pineapple ('O_'表示奇数,' E_'为偶数)。 然后在single.php中
if(substr($post_title, 0, 2) === 'O_') {
echo 'This is an odd post';
}
else {
echo 'This is an even post';
}
echo substr($post_title, 2); //The title to be used on the page