Est-ce que je peux utiliser plusieurs déclarations si comme suit ou existe-t-il une méthode plus efficace et plus performante?
while ( $actionType_query->have_posts() )
{
$actionType_query->the_post();
if (has_term('NBS_CONS', 'broad_type_nbs' ) && has_term('NBS_AGF', 'ecosystem_nbs')) {
$cons_a++;
}
if (has_term('NBS_CONS', 'broad_type_nbs' ) && has_term('NBS_CMA', 'ecosystem_nbs')) {
$cons_b++;
}
if (has_term('NBS_CONS', 'broad_type_nbs' ) && has_term('NBS_FOR', 'ecosystem_nbs')) {
$cons_c++;
}
if (has_term('NBS_CONS', 'broad_type_nbs' ) && has_term('NBS_GRA', 'ecosystem_nbs')) {
$cons_d++;
}
if (has_term('NBS_CONS', 'broad_type_nbs' ) && has_term('NBS_MON', 'ecosystem_nbs')) {
$cons_e++;
}
if (has_term('NBS_CONS', 'broad_type_nbs' ) && has_term('NBS_RIV', 'ecosystem_nbs')) {
$cons_f++;
}
}
Merci.
Chacune de vos instructions if
a la même fonction has_term('NBS_CONS', 'broad_type_nbs' )
. Cela pourrait être mis dans une variable pour la réutiliser à la place.
& Votre argument pour chaque instruction if
est en réalité très cohérent. Vous pouvez donc probablement le réduire en plaçant simplement vos données variables dans un tableau, en boucle et en utilisant Variables de variable :
while ( $actionType_query->have_posts() ) {
$actionType_query->the_post();
$data = [
'a' => 'AGF',
'b' => 'CMA',
'c' => 'FOR',
'd' => 'GRA',
'e' => 'MON',
'f' => 'RIV',
];
$broad_type_nbs = has_term('NBS_CONS', 'broad_type_nbs' );
foreach ($data as $k => $v) {
if ($broad_type_nbs && has_term('NBS_'.$v, 'ecosystem_nbs')) {
${'cons_'.$k}++;
}
}
}