За последние 24 часа нас посетили 11230 программистов и 648 роботов. Сейчас ищет 81 программист ...

Не могу вывести переменную

Тема в разделе "PHP для новичков", создана пользователем face2005, 13 авг 2019.

  1. face2005

    face2005 Активный пользователь

    С нами с:
    31 янв 2015
    Сообщения:
    26
    Симпатии:
    0
    Добрый день! есть условие и цикл
    PHP:
    1.                            <?php if( $terms ): ?>
    2.                                 <?php global $vlist; $vlist = true;?>
    3.                                     <?php foreach( $terms as $term ): ?>
    4.                                        <?php if ($term == $termID){ ?>
    5.              
    6.                                            <div class="index-b-4-t rowVrach">
    7.                                                     <!--  код в цикле -->                      
    8.                                            </div>
    9.  
    10.                                       <?php } ?>
    11.                                 <?php endforeach; ?>
    12.                             <?php endif; ?>
    13.  
    и никак не могу использовать $vlist вне этого условия... т.е. я выше создаю еще одно условие
    PHP:
    1. <?php if ($vlist) { ?>
    2. <h2 class="line">Лечащие врачи</h2>
    3. <?php } ?>
    и оно не срабатывает...

    подскажите что не так?
     
  2. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    2.159
    Симпатии:
    334
    Определение global вынесите наверх.
    --- Добавлено ---
    P.S. Где-то фиг. скобка, где-то endif – бе. И «елочки» в шаблонах не так делаются, либо вообще не делаются.
    --- Добавлено ---
    P.P.S. Вообще не понятно. Вы хотите выше проверять присвоенное ниже true или что???
     
  3. face2005

    face2005 Активный пользователь

    С нами с:
    31 янв 2015
    Сообщения:
    26
    Симпатии:
    0
    Да, хочу вывести заголовок если цикл сработает... а то получается что на некоторых страницах заголовок есть и дальше пусто...
    --- Добавлено ---
    вынес наверх, не сработало...
    --- Добавлено ---
    вот полный код:
    PHP:
    1. <!-- привязанные врачи -------------------------------------------------------------->
    2.  
    3.                        <div class="index-b-4-cont-flex doctorNozology">
    4.                       <div class="container grid-container">
    5.                         <?php global $vlist;?>
    6.                         <?php if ($vlist) { ?>
    7.                         <h2 class="line">Лечащие врачи</h2>
    8.                          <?php } ?>
    9.  
    10.                             <?php    
    11.                             $args = array(
    12.                                    'post_type' => 'doctors',
    13.                                    'publish' => true,
    14.                                    'paged' => get_query_var('paged'),
    15.                                );
    16.                            
    17.                             query_posts($args);
    18.                
    19.                             if ( have_posts() ) :                
    20.  
    21.                                 while ( have_posts() ) : the_post();
    22.  
    23.                                 // массив привязки врачей
    24.                                 $terms = get_field('noz_vrach');
    25.                                
    26.                                 //перебираем
    27.                                 if( $terms ): ?>
    28.                                 <?php  $vlist = true;?>
    29.                                     <?php foreach( $terms as $term ): ?>
    30.                                        <?php if ($term == $termID){ ?>
    31.                
    32.                                            <div class="index-b-4-t rowVrach">
    33.                                                     <div class="index-b-4-tc index-b-4-tc-img"><div>
    34.                        
    35.                                                         <?php if(get_field('foto_vrach')) { ?>
    36.                                                                      <a href="<?php the_permalink(); ?>"><img src="<?php echo get_field('foto_vrach'); ?>" alt="<?php the_title(); ?>" />  </a>
    37.                                                             <?php }
    38.                                                               else { ?>
    39.                                                                       <a href="<?php the_permalink(); ?>"><img src="/wp-content/uploads/2019/07/doctor.jpg" alt="<?php the_title(); ?>" />  </a>
    40.                                                               <?php  }
    41.                                                         ?>
    42.                                                     </div></div>
    43.                        
    44.                                                     <div class="index-b-4-tc index-b-4-tc-name">
    45.                                                         <div class="index-b-4-tc-name-fio nameDoc"><a class="blackLink" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
    46.                                                          <?php if(get_field('spetsial_vrach')): ?>
    47.                                                              <div class="index-b-4-tc-name-spec"><?php the_field('spetsial_vrach'); ?></div>
    48.                                                          <?php endif; ?>
    49.                                                         <div class="index-b-4-tc-name-expir">Владеет современными методами психологии и гипноза</div>
    50.                                                         <?php if(get_field('opit_vrach')): ?>
    51.                                                             <div class="index-b-4-tc-name-staj">стаж <?php echo get_field('opit_vrach'); ?></div>
    52.                                                          <?php endif; ?>
    53.                                                     </div>
    54.                        
    55.                                                     <div class="index-b-4-tc index-b-4-tc-reviews"><a class="blackLink" href="#">15 отзывов</a></div>
    56.                        
    57.                                                     <div class="index-b-4-tc index-b-4-tc-btn">
    58.                                                         <a href="#" class="popmake-174 linkZapisPriem blackLink"><span>Записаться на прием</span></a>
    59.                                                          <?php if(get_field('price_vrach')): ?>
    60.                                                             <span>Прием от:  <b><?php echo get_field('price_vrach'); ?> руб.</b></span>
    61.                                                          <?php endif; ?>      
    62.                                                     </div>
    63.                        
    64.                                            </div>
    65.  
    66.                                       <?php } ?>
    67.                                 <?php endforeach; ?>
    68.                             <?php endif; // конец переборки ?>            
    69.                
    70.                
    71.                             <?php
    72.                                 endwhile;
    73.                                 endif;
    74.                                 wp_reset_query();
    75.                             ?>      
    76.  
    77.                        </div>
    78.                   </div>
    79.  
    80. <!-- привязаные врачи -------------------------------------------------------------->
     
  4. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    2.159
    Симпатии:
    334
    Так делать нельзя. Код выполняется строго сверху вниз. Пересмотрите логику.
    --- Добавлено ---
    И походу global используете не по назначению.
     
  5. face2005

    face2005 Активный пользователь

    С нами с:
    31 янв 2015
    Сообщения:
    26
    Симпатии:
    0
    вынес наверх, не сработало...
    --- Добавлено ---
    а как же тогда поступить?
     
  6. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    2.159
    Симпатии:
    334
    Я написал, как поступить. Пересмотреть логику, например в первом ветвлении использовать не суррогатное условие, а реальное, т.е. без искусственной переменной.
     
  7. face2005

    face2005 Активный пользователь

    С нами с:
    31 янв 2015
    Сообщения:
    26
    Симпатии:
    0
    после цикла то оно выводиться... ладно, буду через jquery перемещать вверх...
     
  8. jurvrn.ru

    jurvrn.ru Новичок

    С нами с:
    14 июн 2019
    Сообщения:
    79
    Симпатии:
    1
    жаль что решения не получили, было бы интересно понять где в вашем коде нарушена логика выполнения