簡體   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