Вот еще что интересно было бы узнать, как видит интерпретатор 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 ).
И таких строк 20, и может будет еще больше:
<?php if ( !is_post_type_archive('cptName') ) { if ( has_term( 'idCategory', 'termName' ) ) { echo ' class="className"'; } } ?>
У меня всего используется две WordPress’овские функции, как вы думаете тяжело ли это для PHP интерпретатора вычислять их по сто раз:
is_post_type_archive() — проверяет, является ли текущая страница архивом произвольного типа постов.
has_term() - Проверяет наличие у поста кастомных терминов, т.е. проверяет есть ли у поста метки/категорий/разделы (с учетом таксономии).
И еще хотел спросить, кажется из двух if я бы мог сделать одно if с логическим оператором AND, но не знаю будет ли это одно и тоже, трогать не охота т.к. пока и так работает.
К черту таро, что, если вызвать дьявола и заключить акт о продаже души в обмен на увеличение трафика до 1 миллиона посетителей в сутки на своем сайте. Черное SEO в сторону, пора применять черную магию :-)
Прикольный рассказ на эту тему: