2014-01-27 5 views
0

Я надеюсь, что кто-то может помочь мне здесь. Я пытаюсь интегрировать ACF в тему, которую клиент приобрел.Пройдите расширенные пользовательские поля через блог Loop

Основная функциональность заключается в том, что я создал собственное поле на каждом посту, чтобы выбрать, где разместить сообщение. Таким образом, если они выбирают «Вариант A» в сообщении, тогда код должен проверять, чтобы этот параметр был истинным, прежде чем передать весь контент, связанный с этим сообщением (заголовок, содержимое, изображения и т. Д.).

A базовый код пример того, как это будет работать в стандартном PHP документ будет выглядеть следующим образом:

<?php if (have_posts()): while (have_posts()) : the_post(); ?> 
    <?php if(get_field('pick_your_theme') == "Theme1") { ?> 

     <h2><?php the_title(); ?></h2> 
     <p><?php the_excerpt(); ?></p> 

    <?php } ?><?php endwhile; ?> 
<?php endif; ?> 

проблема здесь в том, что тема автор создал страницу в одной гигантской открытой функции PHP, а не разбивая его (как в примере 1 выше), где я могу легко вставить селектор get_field.

Ниже приводится ссылка на код PHP для страницы:

http://pastebin.com/wyWQiQvx

+1

Сообщение, которое вы помещаете в мусорный контейнер, выглядит не совсем иначе, чем пример кода, за исключением того, что автор темы использует «эхо», а не закрывает теги PHP. –

ответ

0

Обычно вы уже должны быть в состоянии получить доступ ACM полей внутри цикла, используя следующий код:

<?php the_field('NAME_OF_FIELD'); ?>

0

Основываясь на комментарии @ ChrisHerbert, это должно быть простым вопросом прокрасть ваше условное место, поэтому секция цикла вашего кода выглядит примерно так:

if (have_posts()){ while (have_posts()){ the_post(); 
      if(get_field('pick_your_theme') == "Theme1") { 
              if($gdl_show_title != "No"){ 
                echo '<div class="sixteen columns mb0">'; 
                echo '<div class="page-header-wrapper">'; 
                echo '<h1 class="page-header-title title-color gdl-title">' . get_the_title() . '</h1>'; 
                echo '<div class="header-gimmick mr0"></div>'; 
                echo '<div class="clear"></div>'; 
                echo '</div>'; 
                echo '</div>'; // sixteen columns                
              } 

              if($page_background != 'No'){ 
                echo "<div class='sixteen columns'>"; 
                echo '<div class="page-bkp-frame-wrapper">'; 
                echo '<div class="page-bkp-frame">'; 
              }  

              $content = get_the_content(); 
              // Show content 
              if($gdl_show_content != 'No' && !empty($content)){ 
                echo '<div class="sixteen columns">'; 
                echo '<div class="gdl-page-content">'; 
                echo '<div class="bkp-frame-wrapper">'; 
                echo '<div class="bkp-frame p20">';              
                the_content(); 
                echo '</div>';       
                echo '</div>';   
                echo '</div>'; // page-content 
                echo '</div>'; // sixteen columns 
              } 

          } //pick_your_theme conditional 

         } // while loop 

     } //if have posts 

Очевидно, вы можете настроить код внутри «pick_your_theme» условно, чтобы удовлетворить потребности и вам добавить } elseif(get_field('pick_your_theme') == "Some_Other_Theme") { или по умолчанию для того, когда «pick_your_theme» не установлен } else { блок там, как это необходимо.

Смежные вопросы