检测自定义帖子类型是奇数还是偶数

时间:2015-04-16 17:28:38

标签: php wordpress

我有一个自定义帖子类型 - 我们假设它被称为fruit

如果我有一份水果清单,按日期排序:

Apple
Orange
Mango
Pineapple
Orange

如果我通过single.php加载Mango页面,我想知道它是奇数还是偶数,所以我可以在模板中使用一些稍微不同的CSS类。

我可以按日期顺序获取fruit类型的所有帖子并循环浏览它们,但这看起来非常浪费。

有更好的方法吗?

3 个答案:

答案 0 :(得分:0)

如何使用array_search("Mango",$array)%2

http://php.net/manual/en/function.array-search.php

答案 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