通过博客循环传递高级自定义字段

问题描述:

我希望有人能帮助我。我正在尝试将ACF集成到客户购买的主题中。通过博客循环传递高级自定义字段

基本功能是我已经在每个帖子上构建了一个自定义字段来选择帖子的放置位置。因此,如果他们在帖子中选择“选项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

除了主题作者使用“echo”而不是关闭PHP标记之外,您放入粘贴bin的帖子与示例代码没有多大区别。 –

通常情况下,你应该已经可以使用下面的代码来访问环路内ACM领域:

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

建立在@ 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 {块违约。