Как добавить третье условие в коде?
Приветствую, есть код:
$posts = $query->get_posts(); if(is_front_page() && count($posts)){ |
$posts = $query->get_posts(); if(is_front_page() && count($posts)){
На второй строке два условия, при выполнении которых скрипт исполняется. Теперь мне туда нужно третье условие добавить $post_id == 5155. Как это сделать?
Такой вариант не подошел:
if(is_front_page() && count($posts) && $post_id == цифра){ |
if(is_front_page() && count($posts) && $post_id == цифра){
Дополнительно:
Какой-то бред в if...
is_front_page()
Проверяем если главная страницы
count($posts)
Это по твоей логике что должно делать ?
Задай новый вопрос с задачей, которую хочешь решить.
как мне к этому условию правильно добавить третье условие
$post_id == 5155
Если хочешь её решить - о ней и спрашивай.
А в коде реально бред.
Ответы:
Конечно не подошел, у вас же в примере $post_id == цифра, а нужно $post_id == 5155 XD
А начнем мы с главного, что хранится в $post_id ?
- Я с нужной цифрой использовал код, не работает. $post_id == это условие выводящее страницы у которых родительская с определенным ID
- serhgons, покажите мне код, что находится в $post_id
Самое простое, это можно сделать через var_dump - maksam07, ты не знаешь ВП.. не стоит и пытаться разрулить этот бред.
- Синтаксис вашего условия верен. Вам нужно проанализировать(и протестировать) сами три условия. Если "не подошло", значит условия исполняются иначе, чем вы это сами представляете.
- Refguser, исходя из чего у вас такой вывод, что я не знаю вп?
- maksam07, не знаю у кого у нас, но человек, знающий ВП никогда не задаст вопрос "что хранится в $post_id". Ну и понял бы бредовость показанного кода.
- Refguser, а вы знаете, что там хранится? Или может быть автор показал работу с глобальной переменной? Или там не нужно объявление глобальной переменной? По его примеру я только вижу, что такая переменная не объявлена, а если у него без этой переменной все работает, то какой у вас может быть вопрос к автору?
На счет бредовости кода я никаких комментариев не давал
Ниже цикл будет в нем и проверяйте
if ( is_front_page() && count( $posts ) > 0 && get_queried_object_id() === 320 ) { // code... } |
if ( is_front_page() && count( $posts ) > 0 && get_queried_object_id() === 320 ) { // code... }
if((is_front_page() && count($posts)) || $post_id == 5155){ echo true; } |
if((is_front_page() && count($posts)) || $post_id == 5155){ echo true; }
Вот что происходит когда заканчиваешь курсы по программированию за 3 месяца Х)
1. Что лежит в $posts ?
2. Что за значение в $post_id ?
Я подозреваю что в $posts массив всех постов, а в $post_id ид текущего поста.
Тогда вопрос: нафига проверять на количество постов если ты уже проверяешь конкретный пост?
И автору нужно разобраться с условиями И и ИЛИ
Ещё вариант что $post_id не объявлен и по этому ошибка
Попробуй такой вариант
if(is_front_page() && count($posts) && (isset($post_id) && $post_id == цифра)){ |
if(is_front_page() && count($posts) && (isset($post_id) && $post_id == цифра)){
Для новичка пойдёт и такое решение
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


Третье условие в
ifдобавляется через логический оператор&&, если все условия должны быть истинными одновременно. В Вашем случае:if (is_front_page() && count($posts) && $post_id == 5155) { // код }
Если хотите строже сравнивать число с числом, лучше привести ID к integer и использовать
===:if (is_front_page() && !empty($posts) && (int) $post_id === 5155) { // код }
В PHP
count($posts)вернёт число. Если массив не пустой, число будет считаться true. Но читаемее писать!empty($posts), если Вам важно только наличие записей.Если переменная
$post_idможет быть не определена, сначала получите её явно:$post_id = get_queried_object_id(); if (is_front_page() && !empty($posts) && $post_id === 5155) { // код }
Но есть нюанс: на главной странице
is_front_page()и конкретный$post_idзависят от настроек “Что отображать на главной”. Если главная — статическая страница, ID можно получить черезget_option('page_on_front'):$front_page_id = (int) get_option('page_on_front'); if (is_front_page() && !empty($posts) && $front_page_id === 5155) { // код }
Если нужно условие “главная или страница 5155”, тогда оператор будет не
&&, а||:if ((is_front_page() || (int) $post_id === 5155) && !empty($posts)) { // код }
Итог: для третьего обязательного условия добавляйте
&& $post_id == 5155. Если условие альтернативное, используйте||и скобки, чтобы логика читалась однозначно.