繁体   English   中英

ACF 转发器字段未呈现行

[英]ACF repeater field not rendering the rows

我有这个网站,我正在为客户工作。 我跳进了这个项目,我必须在模板文件上为特定页面创建手风琴。 我刚刚开始深入了解 PHP 所以我在这篇文章中在线找到了解决方案https://wpbeaches.com/create-an-acf-repeater-accordion-in-wordpress/现在,我的问题是:我创建了转发器字段with two subfields https://prnt.sc/xfg3lv and I choose that it only shows on this page template https://prnt.sc/xfg6lw Then I created the fields on the actual page with that template https://prnt. sc/xfgdhp并将文章中的那段代码插入到模板文件中。 当然,我用我的字段名称修改了名称。 问题是在前面它没有显示行,即使它们存在,只是跳到 else 语句。 我将粘贴该模板页面的完整代码,因此如果有人可以提供帮助,那就太好了。 在这个问题上,我已经绞尽脑汁两天了。

代码(我标记了我的代码开始和结束的位置):

<?php
/**
* Template Name: Services
*
**/
global $post;
      $post_slug = $post->post_name;
      $grandParent_title=get_page(get_ancestors($post->ID,'page')[0] )->post_title;
      $grandParent_Image=wp_get_attachment_url( get_post_thumbnail_id(get_ancestors($post->ID,'page')[0] )) ;
      get_header();



global $wp;

$current_slug = add_query_arg( array(), $wp->request );
$url_slug=explode('/', $current_slug);

$uri_string=$url_slug[1];
$_SESSION['current_url']=$uri_string;


function find_string_in_array ($arr, $string) {

    return array_filter($arr, function($value) use ($string) {
        return strpos($value, $string) !== false;
    });

}

if(find_string_in_array ($url_slug, 'poly')==true)
{
  $nav_theme_location='polystyrene';
  $BannerClass='';
  $post_type='polystyrene';
  $galleryClass='';
}elseif(find_string_in_array ($url_slug, 'fiber')==true){
  $nav_theme_location='fiberglass';
  $BannerClass='fiberbanner';
  $post_type='fiberglass_type';
  $galleryClass='fiber';
}elseif (find_string_in_array ($url_slug, 'wood')==true) {
  $nav_theme_location='woodwork';
  $BannerClass='woodworkbanner';
  $post_type='woodworks';
  $galleryClass='wood';
}
elseif (find_string_in_array ($url_slug, 'creative')==true) {
  $nav_theme_location='creative_production';
  $BannerClass='creativebanner';
  $post_type='creative_services';
  $galleryClass='creative';

}elseif (find_string_in_array ($url_slug, 'f-and-b')==true) {
  $nav_theme_location='fb';
  $BannerClass='fandbbanner';
  $post_type='creative_services';
  $galleryClass='';

}else{
    $nav_theme_location='';
    $BannerClass='';
    $post_type='';
   $galleryClass='';

}
?>
<section class="banner inner-banner <?= $BannerClass;?>">
    <!-- <div class="bannerBox" style="background-image: url(<?php // echo get_the_post_thumbnail_url())?get_the_post_thumbnail_url():;?>)"> -->
  
    <div class="bannerBox" style="background-image: url(<?= (get_the_post_thumbnail_url()!='')?get_the_post_thumbnail_url():$grandParent_Image;?>)">
        <div class="bannerContent">
            <div class="overlay"></div>
            <h1><?= $grandParent_title;?></h1>
        </div>
    </div>
</section>



<section class="secondrynavigation">
    <div class="container">
        <div class="innerMenu">
        
               <?php
                  $args=array(
                     'theme_location'=>$nav_theme_location,
                     'container'     =>false,
                     'menu_class'    =>'',
                      );
                  wp_nav_menu($args);
                  ?>

        </div>
    </div>
</section>
            
            <section class="pad">
                <div class="container-fluid">
                    <div class="innerHeading">
                        <h3><?php the_title();?></h3>
                        <p><?php
                        $content_post = get_post($post->ID);
                        echo $content = $content_post->post_content;?></p>

       

                    </div>
                </div>
                
                <div class="gallery <?= $galleryClass?>">
                    <div class="container">
                        <div class="row">
                            <?php 
                           // echo $post_type;exit;
                                $loops = new WP_Query(array('posts_per_page'=> -1,
                                                            'post_type' => $post_type, 
                                                            'orderby' => 'id',
                                                            'order' => 'asc',
                                                            'category_name'=>$uri_string));
// echo "<pre>";
  //                              print_r($loops);exit;
                                if($loops->have_posts()):
                                while ($loops->have_posts()) :
                                $loops->the_post();
                              global $post;
                              $post_slug = $post->post_name;
                             ?>
                            <div class="col-lg-4">
                                <a href="<?= get_permalink();?>">
                                    <div class="galleryBox">
                                        <div class="overlay">
                                            <p><i>Read More</i></p>
                                        </div>
                                        <div class="image" style="background-image: url(<?= get_the_post_thumbnail_url();?>)"></div>
                                        <div class="galleryText">
                                            <h5><?php the_title();?></h5>
                                        </div>
                                    </div>
                                </a>
                            </div>
                            <?php endwhile;
                            endif;?>
                            
                        
                          
                        </div>
                    </div>
                </div>
            </section>
            
            <!--MY CODE-->
            
                <?php
    if( have_rows('services_accordion') ):
    
    
    // loop through the rows of data for the tab header
    while ( have_rows('services_accordion') ) : the_row();
        
//      $title = get_sub_field('services_title');
//      $description = get_sub_field('servises_description');

    ?>
    
        <button class="accordion"><?php echo get_field('services_title'); ?></button>
        <div class="panel">
          <p><?php echo get_field('services_description'); ?></p>
        </div>    
        <?php
    endwhile; 

else :


    echo 'In progress';

endif; ?>

<!--MY CODE END-->
            
       
<?php get_footer();?>  

最后,这是页面https://prnt.sc/xfh0z7上的结果。

提前致谢!

尝试将您的内容包装成:

<?php while (have_posts()) : the_post(); ?>

// all your content related to the post including repeater code.

<?php endwhile; // End of the loop.?>

这样中继器将位于您当前帖子/页面的 scope 中。 或者,您可以在转发器 function 中将帖子 ID 指示为参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM