如何在一定条件下合并两个PHP代码?

时间:2019-02-28 19:38:07

标签: php html wordpress

我正在一个wordpress网站上工作,在其中我通过以下代码控制主页的内容:

代码A:

$special_reports = new \WP_Query( [
    'post_type' => 'current-special-report',
    'orderby'   => 'menu_order',
    'order'     => 'ASC',
    'posts_per_page' => 4,
]);

通过以上代码,主页上显示4条帖子。


在某些情况下,我希望显示它。2.在if($data->{"toggle_status"}==3)时,我希望posts_per_page为 2 。为此,我使用以下逻辑:

代码B:

if($data->{"toggle_status"}==3) {
$special_reports = new \WP_Query( [
    'post_type' => 'current-special-report',
    'orderby'   => 'menu_order',
    'order'     => 'ASC',
    'posts_per_page' => 2,
]);
}

问题陈述:

我想知道,是否还有任何方法可以将代码A和代码B与($data->{"toggle_status"}==3)逻辑合并。

4 个答案:

答案 0 :(得分:4)

只需创建一个根据条件设置的变量即可。

$posts_per_page = 4; //default is set to 4
if($data->toggle_status === 3) {
    $posts_per_page = 2; //set to 2 if condition is met
}

$special_reports = new \WP_Query( [
    'post_type' => 'current-special-report',
    'orderby'   => 'menu_order',
    'order'     => 'ASC',
    'posts_per_page' => $posts_per_page,
]);

这样做的另一个好处是,以后可以轻松添加更多条件以最终更改值。

注意:如果$data->toggle_status返回一个字符串,则此处的if语句可能会略有变化,它将变为:

  • $data->toggle_status === "3"
  • $data->toggle_status == 3

答案 1 :(得分:2)

只需使用三元运算符

GUI

答案 2 :(得分:2)

只需定义数组,然后添加或更改数组即可:

$array = [
    'post_type' => 'current-special-report',
    'orderby'   => 'menu_order',
    'order'     => 'ASC',
    'posts_per_page' => 4];

if($data->toggle_status == 3) {
    $array['posts_per_page'] = 2;
}

$special_reports = new \WP_Query($array);

有多种方法,但是您可以理解。您也可以使用switch,或者如果您总是想少显示一个,则:

$array['posts_per_page'] = $data->toggle_status - 1;

答案 3 :(得分:1)

是的

$param = [
            'post_type' => 'current-special-report',
            'orderby'   => 'menu_order',
            'order'     => 'ASC'
        ];

if($data->{"toggle_status"}==3) {
    $param[ 'posts_per_page' ] = 3;
} else {
    $param[ 'posts_per_page' ] = 4;
}

$special_reports = new \WP_Query(  $param );