Dmitriy_2014

Dmitriy_2014
Рейтинг
370
Регистрация
01.07.2014
Интересы
Веб-технологии
Не просто жуть, а жесть я бы сказал, но к сожалению стандартные функции которые я думал простые и понятные а-ля is_archive(), is_category() с которыми я быстро наклипаю то что мне надо оказались не работающими с кастомным типом записи и с кастомной таксономией.
LEOnidUKG #:

Одинаково всё.

Это называется стиль написания и не более того.

Если вы пишите для себя родимого, то как хотите. Если пишите для других людей, то пишите более развернуто и понятно. И иногда пишут первый вариант т.к. знаю, что может быть понадобиться 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"'  :  ''; ?>
Ладно всем спасибо за подсказки, в общем так как по моим подсчетам это занимает толи 1 миллисекунду, толи 0, то оставлю это все так как есть в виде прототипа на время ( Нет ничего более постоянного, чем временное :) ) .
fliger #:
Массив + цикл.
Массив для меня, наверное, это не вариант, мне будет не удобно, так вроде понятно и удобно.
Ilya74 #:

Если в каждом условии вычисляется одна и та же функция с одними и теми же аргументами, то конечно это нужно выносить в переменную и не вычислять по 100 раз.

Смотрите сколько у вас этих полностью одинаковых is_post_type_archive('cptName') и т.п. и выносите повторения в переменные.

С is_post_type_archive('cptName') так, наверное, можно сделать т.к. там всегда один и тот же аргумент, а вот со второй has_term( 'idCategory', 'termName' ) там id категорий всегда разный.
Мне вообще этот ChatGPT напоминает поисковую систему с ответами на запрос, но говорят, что он генерирует именно типа слова предложения и ал-я речь с ответами, насколько это правда фиг его знает, но прикольно.
temniy #:

можно заменить на

можно заменить на тернарный

Вот я тоже об этом думал, спасибо, использовать AND / && - чтобы убрать одно if. Главное чтобы это было одно и тоже, вместо двух if.
Неуч #:
А вообще - работает - не трожь. Поставь плагин для кэширования и забей. Когда изучишь php - тогда занимайся переписываем, а пока и так сойдет :)
Я так и делаю, но куча if в if смотрится конечно убого, но зато все работает :)
lealhost #:
Замерьте время выполнения и потом решите нормально он времени на это тратит или нет.

Не знаю насколько я правильно делаю замеры, но они получались смешные, с помощью функции timer_stop( 0 ).

В общем для пока что около 42 if’ов, показывает типа в среднем 0,001 сек., а то и просто 0 сек. ( И мне кажется если это правда то это вообще фигня, и я могу надобавлять ещё дофига if’ов, но это не точно )
Всего: 2000