簡體   English   中英

如何在一定條件下合並兩個PHP代碼?

[英]How to merge two php codes with some condition?

我正在一個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)邏輯($data->{"toggle_status"}==3)

只需創建一個根據條件設置的變量即可。

$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

只需使用三元運算符

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

只需定義數組,然后添加或更改數組即可:

$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;

是的,很容易

$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 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM