Как добавить третье условие в коде?

Ссылка скопирована
1 ответ

Приветствую, есть код:

$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)
Это по твоей логике что должно делать ?

  • Оно там все работает нормально, третье условие вставляю ошибку выдает
  • Проблема молотка.

    Задай новый вопрос с задачей, которую хочешь решить.

  • Refguser, вот есть условие if(is_front_page() && count($posts)){
    как мне к этому условию правильно добавить третье условие
    $post_id == 5155
  • serhgons, это ты придумал РЕШЕНИЕ какой-то задачи. Проблема молотка.
    Если хочешь её решить - о ней и спрашивай.

    А в коде реально бред.

  • serhgons, какую ошибку выдаёт?
  • Ответы:

    Конечно не подошел, у вас же в примере $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 == цифра)){

    Для новичка пойдёт и такое решение

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Роман IT Ответ

    Третье условие в if добавляется через логический оператор &&, если все условия должны быть истинными одновременно. В Вашем случае:

    if (is_front_page() && count($posts) && $post_id == 5155) {
        // код
    }

    if (is_front_page() && count($posts) && $post_id == 5155) { // код }

    Если хотите строже сравнивать число с числом, лучше привести ID к integer и использовать ===:

    if (is_front_page() && !empty($posts) && (int) $post_id === 5155) {
        // код
    }

    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) {
        // код
    }

    $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) {
        // код
    }

    $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)) {
        // код
    }

    if ((is_front_page() || (int) $post_id === 5155) && !empty($posts)) { // код }

    Итог: для третьего обязательного условия добавляйте && $post_id == 5155. Если условие альтернативное, используйте || и скобки, чтобы логика читалась однозначно.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно