将多个数组添加到args数组

时间:2014-03-06 16:53:07

标签: php arrays function

解决 (学分将在10分钟内添加。)

我的functions.php(Wordpress)中有一个自定义的帖子类型脚本,我不明白它的含义。

$query_args = array(
'posts_per_page' => 5,
'post_type'      => $is_some_page ? CPT_ONE : CPT_TWO,
'post_status'    => 'publish',
'paged'          => 1
);

脚本加载完美,没有任何问题。

问题:我想添加一个额外的post_type,但我不理解:符号......它的含义是什么?以及如何添加更多? 这不起作用:

'post_type' => $is_some_page ? CPT_ONE : CPT_TWO : CPT_THREE,

编辑:感谢您查看并更改问题的标签。 非常感谢其他所有人指出我与操作员的正确方向。

1 个答案:

答案 0 :(得分:5)

你所看到的是ternary if运算符(很多语言都有这个,包括PHP和Javascript)。

所以这个:

$someVar = $someBool ? $val1 : $ val2

相当于:

if ($someBool)
{
    $someVar = $val1;
}
else
{
    $someVar = $val2;
}

所以这个:

'post_type' => $is_some_page ? CPT_ONE : CPT_TWO : CPT_THREE

没有意义,因为$is_some_page只能评估为真或假。但目前尚不清楚你的逻辑应该是什么。在什么情况下,您希望post_type CPT_ONECPT_TWOCPT_THREE

你可以这样做:

'post_type' => $is_some_page ? CPT_ONE : ($some_other_condition ? CPT_TWO : CPT_THREE)

相当于if / else if / else