Использование повторителя WordPress ACF в header.php - PullRequest
0 голосов
/ 18 октября 2018

В ACF у меня есть повторитель под названием «ползунок» с полем переключателя.Это появляется на главной странице сайта.

Я бы хотел вывести поле переключателя в header.php.Вот что я попробовал:

<?php
  if( have_rows('slider',$post->ID) ):
  while ( have_rows('slider',$post->ID) ) : the_row();
    if(get_sub_field('logo_type',$post->ID) == 'light' ) {
      echo '<p>Light</p>';
    }
  endwhile;
  endif;
?>

Это происходит пусто, даже когда я пытаюсь var_dump(get_sub_field('logo_type',$post->ID));

Я также пробовал:

<?php
  if( have_rows('slider',$post->ID) ):
  global $wp_query;
  $postid = $wp_query->post->ID;
  while ( have_rows('slider',$postid) ) : the_row();
    if(get_sub_field('logo_type',$postid) == 'light' ) {
      echo '<p>Light</p>';
    }
  endwhile;
  endif;
?>

Чтоя здесь не так делаю?

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Я не знаю, решит ли это вашу проблему, но get_sub_field второй параметр должен быть не идентификатором записи, а значением формата.Таким образом, в этом случае вы бы оставили его пустым.

<?php
  if( have_rows('slider',$post->ID) ):
  global $wp_query;
  $postid = $wp_query->post->ID;
  while ( have_rows('slider',$postid) ) : the_row();
    if(get_sub_field('logo_type') == 'light' ) {
      echo '<p>Light</p>';
    }
  endwhile;
  endif;
?>

Я также рекомендую отладить, какой идентификатор вы получаете от $ postid.

<?php
  global $wp_query;
  $postid = $wp_query->post->ID;
  echo $postid;
?>
0 голосов
/ 23 октября 2018

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

    $menu = wp_get_nav_menu_object('menuid');//replace with your menu id.
    the_field('logo_type',$menu);

, вы можете получить к нему доступ где угодно, и вы можете увидеть это поле в Apperance-> Menus-> Меню name-> ACF-имя поля

0 голосов
/ 18 октября 2018

Вы пробовали без этого $ post-> ID

<?php
 if( have_rows('slider') ):
  while ( have_rows('slider') ) : the_row();
   if(get_sub_field('logo_type') == 'light' ) {
      echo '<p>Light</p>';
   }
  endwhile;
 endif;
?>
...