[英]how to merge these two queries and adjust if else condition in mysql 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.