Одинаково всё.
Это называется стиль написания и не более того.
Если вы пишите для себя родимого, то как хотите. Если пишите для других людей, то пишите более развернуто и понятно. И иногда пишут первый вариант т.к. знаю, что может быть понадобиться ELSE в будущем. Но это уже опыт разработки нужен, чтобы прогнозировать некоторые моменты.
Вот еще что интересно было бы узнать, как видит интерпретатор PHP вот эти три разных варианта if, в его видении, в опкодах это для него абсолютно одно и тоже, просто запись для меня разная, извиняюсь за тупой вопрос, но просто если интерпретатор переделывает это все в одно и тоже под себя, то и мне переделывать эти if’ы из двух в один смысла нет:
<?php if ( !is_post_type_archive('cptName') ) { if ( has_term( 'idCategory', 'termName' ) ) { echo ' class="className"'; } } ?>или<?php if ( ( !is_post_type_archive('cptName') ) && ( has_term( 'idCategory', 'termName' ) ) ) { echo ' class="className"'; } ?>или<?php echo ( ( !is_post_type_archive('cptName') ) && ( has_term( 'idCategory', 'termName' ) ) ) ? ' class="className"' : ''; ?>
Если в каждом условии вычисляется одна и та же функция с одними и теми же аргументами, то конечно это нужно выносить в переменную и не вычислять по 100 раз.
Смотрите сколько у вас этих полностью одинаковых is_post_type_archive('cptName') и т.п. и выносите повторения в переменные.
можно заменить на
можно заменить на тернарный
Не знаю насколько я правильно делаю замеры, но они получались смешные, с помощью функции timer_stop( 0 ).