Недопустимое смещение строки в мета-значении === 1 - PullRequest
0 голосов
/ 07 апреля 2019

Я хочу отображать сообщение из пользовательского сообщения после проверки, что значение мета-ключа сообщения === 1. Но я получаю сообщение об ошибке "допустимое смещение строки" isAirConditioning "". Что я сделал не так?

Я создал собственный пост под названием «Работы». К этому заказному посту я сделал метабокс, который позволяет мне отмечать, какая работа будет назначена для кондиционирования воздуха, охлаждения или восстановления. Затем в шаблоне страницы я запускаю оператор if, чтобы проверить, на какой странице я сейчас работаю, чтобы отобразить правильные работы. Если я на странице «Условия работы с воздухом», то передается запрос, чтобы получить все сообщения с мета из этого настраиваемого поста, затем выполняется второе утверждение if, чтобы проверить, является ли $ meta ['isAirConditioning'] === '1 ».

 <?php
    $classes = get_body_class();
    if(in_array('page-id-233', $classes)) {
      echo '<p>do something</p>';
    }
    elseif(in_array('page-id-239', $classes)) {
      echo '<ul>';
       $args = array('post_type' => 'works', 'orderby' => 'date', 'order' => 'ASC', 'showposts' => 100);
       $the_query = new WP_Query($args);

       while ($the_query->have_posts() ) : $the_query->the_post();

       $meta = get_post_meta( $post->ID, 'portfolio_details', true );

       if ($meta['isAirConditioning'] === '1') {
  ?>
         <li class="works-wrapper col-3 col-sm-3 col-md-3 col-lg-3">
            <a class="works-img"href="<?php the_permalink() ?>" >
              <span class="works-gradient"></span>
              <?php the_post_thumbnail(); ?>
             </a><!-- .works-img -->
            <a class="works-title" href="<?php the_permalink() ?>" ><?php the_title(); ?></a>
         </li><!-- .worsk-wrapper -->

  <?php
   }
      endwhile;

      echo '</ul>';
  }
  elseif(in_array('page-id-241', $classes)) {
    echo '<p>do something</p>';
  }
 ?>

Сообщение отображается, но я получаю сообщение об ошибке "Недопустимое смещение строки" isAirConditioning ""

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Мне удалось решить проблему, проверив, пусто ли $ meta или нет

if(!empty($meta)) :
   if ($meta['isAirConditioning'] === '1') {
   ?>
     <li class="works-wrapper col-3 col-sm-3 col-md-3 col-lg-3">
       <a class="works-img"href="<?php the_permalink() ?>" >
         <span class="works-gradient"></span>
         <?php the_post_thumbnail(); ?>
       </a><!-- .works-img -->
       <a class="works-title" href="<?php the_permalink() ?>" ><?php the_title(); ?></a>
     </li><!-- .worsk-wrapper -->
   <?php
  }
  endif;
0 голосов
/ 07 апреля 2019

Посмотрите на официальную документацию. Вы устанавливаете $ single в true и получаете значение вместо массива. Поэтому я думаю, что ошибка появляется, потому что вы пытаетесь использовать строку в качестве массива.

...