当前位置: 首页 > 知识库问答 >
问题:

在repeater字段中发布对象(WordPress ACF)

逄征
2023-03-14

我在WordPress与ACF合作。

我有一个自定义的帖子类型称为Projects。在那里,用户可以选择通过ACF中继器字段上传2张特色图像。

现在,在主页上,我已经给用户提供了从项目帖子类型中选择8个帖子对象的选项。

我需要能够循环通过这个主页转发器字段,并从每个“项目”帖子对象中提取特征图像和项目标题。

ACF最近贬低了repeater_field函数,我认为它把我扔在这里。

但是,到目前为止,我一直在努力解决以下问题:

<!-- check for repeater field -->
<?php if(get_field('featured-projects')): ?>

    <?php while(has_sub_field('featured-projects')): ?>

        <!-- get project post objects -->
        <?php $projects = get_sub_field('project'); ?>

        <!-- without the loop below, this echo's all 8 projects ID's -->
        <?php echo($projects->ID); ?><br />

        <!-- when added, only pulls the first project. And limits the echo above to the first ID -->
        <?php $loop = new WP_Query( array( 
            'post_type' => 'projects',
            'p' => $projects->ID
        ) ); ?>

        <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>


        <?php endwhile; ?>


    <?php endwhile; ?>

<?php endif; ?>

我试图对代码进行注释,但如果有任何不合理的地方,请告诉我。

共有1个答案

秦弘亮
2023-03-14

我是这样做的,尽管我意识到这与你的方法不同。我在代码注释中包含了解释:

<?php $featured_projects = get_field('featured-projects'); //Set $featured_projects to equal the array of projects from the home page repeater. ?>

<!-- check for repeater field -->
<?php if($featured_projects): ?>

      <?php foreach($featured_projects as $featured_project) : //Loop through each featured project ?>

          <?php  $project_id = $featured_project['project']->ID; //Get the id for the current featured project ?>

          <?php $project_title = get_the_title($project_id); //set $title to be the title of the project ?> 
          <?php project_featured_images = get_field('name-of-featured-repeater-field-here', $project_id); //get the repeater field of the featured images from the project post ?>



          <h1 class='title'><?php echo $project_title; //print the title ?></h1>

          <?php if($project_featured_images[0]): //check if you have a 1st image (size large) ?> 
              <img class='featured-image-one' src="<?php echo $project_featured_images[0]['name-of-the-featured-image-sub-field-here']['sizes']['large']; //print the url to the 1st image; ?>"/>
          <?php endif; ?>

          <?php if($project_featured_images[1]): //check if you have a 2nd image ?> 
              <img class='featured-image-two' src="<?php echo $project_featured_images[1]['name-of-the-featured-image-sub-field-here']['sizes']['large']; //print the url to the 2nd image (size large); ?>"/>
          <?php endif; ?>

      <?php endforeach; ?>

<?php endif; ?>

确保填写项目特色图像转发器字段的名称,以及该转发器中图像子字段的名称。这显然是一个比API版本更标准的基于PHP的解决方案。我通常根据Elliot Candon(ACF开发者)的建议使用此方法。

您还可以通过将“大”更改为另一个标准尺寸或添加自定义尺寸来获得功能图像的不同图像尺寸。

 类似资料:
  • 问题内容: 我正在尝试将JSON发布到WCF服务。json对象包含一个数组。我想知道如何正确绑定到我的数据合同。如果有人可以在这里给我指点,我将不胜感激。目前,我的购物车对象为null 我的服务界面如下所示: 我的客户电话如下 客户电话 我的JSON看起来像这样 问题答案: Fiddler对WCF REST方法的原始请求应如下所示: JSON中的响应如下所示:

  • 我想寻求一些帮助。我是APEX的新手,我面临的问题是APEX触发器似乎是一个解决方案。我需要Salesforce中的一个触发器,该触发器将使用Staff对象(自定义对象)的值from Holidays Remaining字段更新位于Users对象(standard对象)中的字段。换言之,应将员工剩余假期中填充的内容复制到名为“用户剩余假期”的字段中。谁能帮我一下吗?

  • 我们的REST API接收一些JSON对象输入,其中一些字段要求为非空。这些可以是String/Intger,甚至可能是其他一些类实例作为引用。 我们试图找到一种方法来强制这些字段不为null,而不是API中null检查的正确方法。当前: 我们想要的是: 我们尝试了3件事: 1) 升级至jackson 2.0.6并使用annotation com。fasterxml。杰克逊。注释。JsonProp

  • 我有一个Employee类,它以PersonalDetails类对象作为成员 类如下所示

  • 我用的是Kafka普勒。send()方法将记录发布到Kafka。这是一种异步方法。我的申请将向Kafka发布大约2万张唱片。在成功发送大约10k条记录后,我多次收到超时异常。我增加了一批。大小和逗留。ms减少了问题,但有时我仍然会遇到超时异常。有没有办法一次只发送10k条记录,等待它们完成,然后再发送下一批记录??我不想通过使用send使其同步。get()因为这会让它变得非常慢。这是我得到的例外。

  • 问题内容: 我在以下架构中具有json对象: 在这里,该字段包含一个嵌入的json对象,并且该对象的模式是动态的,并且每次都不同。 的对象是不同的API服务,以及不同的API服务的不同方法获得的原始输出。不可能将其映射到所有可能的值。 是否可能有如下所示的java类: 或者类似的东西,以便我可以接收基本架构并对其进行处理,然后将其发送到相关类,该类将转换为适当的预期类? 问题答案: 使用 您可以从