首页 > 解决方案 > 用于在 Wordpress 帖子上显示 ACF 字段的 PHP 代码?

问题描述

我有一个 PHP 代码片段数组,显示帖子中的 ACF 字段值列表。我想在单个帖子中使用该代码,并且只显示当前帖子中的 ACF 值。所以它不再是一个列表。我仍然需要日期过滤。

我必须改变什么才能让它像我想要的那样工作?

 <?php
$today = current_time('Ymd');

$args = array(
    'post_type' => 'post',
    'posts_per_page' => '20',
    'meta_key'  => 'kalenderdag',
    'order' => 'ASC',
    'orderby' => 'meta_value',
    'meta_query' => array(
      array(
            'key'   => 'kalenderdag',
            'compare' => '>=',
            'value'   => $today,
 'type'         => 'DATE'
        ),
    ),
);

$children = new WP_Query($args);
?>

<?php if ($children->have_posts()) : ?>
  <?php while ($children->have_posts()) : $children->the_post(); $fields = (object) get_fields(); ?>
    <div class="event row">
      <div class="event-logo col-sm-4">
        <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'large', array( 'class' => 'img-responsive' ) ); ?></a>
      </div>
      <div class="event-details col-sm-8">
        <h2 class="underline"><a href="<?php the_permalink(); ?>"><?php echo $fields->kalendertitel; ?> - <?php $date = get_field('kalenderdag'); ?>
<?php echo date("d M Y", strtotime($date)); ?></a></h2>
<h3 class="underline"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
        <p><?php echo $fields->kalendertext; ?></p>
        <p class="call-to-action"><a href="<?php the_permalink(); ?>">Läs mer</a></p>
      </div>
    </div>
  <?php endwhile; wp_reset_postdata(); ?>
       <?php else : ?>

               <h2 class="page-title">Just nu har vi inga bokade evenemang</h2>
               <p>
                  Kika gärna in på denna sida en annan gång eller kontakta oss på <a href="mailto:info@fredenshus.se">info@fredenshus.se</a> om du har några frågor.
               </p>

<?php endif; ?>

标签: phpwordpressadvanced-custom-fields

解决方案


您可以将当前 ID 作为'p' => get_the_ID()WP_Query 的参数输入吗?

$args = array(
    'p'              => get_the_ID(),
    'post_type'      => 'post',
    'posts_per_page' => '20',
    'meta_key'       => 'kalenderdag',
    'order'          => 'ASC',
    'orderby'        => 'meta_value',
    'meta_query'     => array(
        array(
            'key'       => 'kalenderdag',
            'compare'   => '>=',
            'value'     => $today,
            'type'      => 'DATE'
        ),
    ),
);

推荐阅读