编程语言
首页 > 编程语言> > php – 按日期排序高级自定义字段中的对象

php – 按日期排序高级自定义字段中的对象

作者:互联网

嗨,我在高级自定义字段中有一个帖子对象字段,我希望返回多个帖子,按日期排序.我有来自那些帖子的自定义字段数据返回正常,但邮件对象按邮政ID的顺序返回.我希望它们能够在帖子发布之日前订购.

<?php $post_objects = get_field('exhibitions');

if( $post_objects ): ?>

 <?php foreach( $post_objects as $post_object): ?>

 <a href="<?php echo get_permalink($post_object->ID); ?>">
 <div style="display: inline-block">

  <? if( get_field( 'title', $post_object->ID) ): ?>
   <em><?php the_field('title', $post_object->ID); ?></em><br>
  <?php endif; ?>

  <? if( get_field( 'dates', $post_object->ID) ): ?>
   <?php the_field('dates', $post_object->ID); ?>
  <?php endif; ?>

 </div>
 </a>
 <br><br>

 <?php endforeach; ?>

<?php endif; ?>

这将从调用此文章的帖子的“帖子对象”字段中选择的每个帖子返回文本自定义字段“标题”和“日期”.

我希望帖子按照发布日期的顺序返回此处.

有任何想法吗?

解决方法:

好的,我已经弄清楚了!

您不是将get_field作为post_objects调用,而是将其称为变量,只是为了获取相关帖子的ID,然后在数组中使用它来获取get_posts的$args.这样,您可以在运行循环之前访问get_posts的所有数组选项.

<?php 

$ids = get_field('exhibitions', false, false);

$args = array(
  'post__in' => $ids,
  'orderby' => 'post_date',
);

$post_objects = get_posts( $args );

if( $post_objects ): ?>

<?php foreach( $post_objects as $post_object): ?>

  <a href="<?php echo get_permalink($post_object->ID); ?>">
  <div style="display: inline-block">

  <? if( get_field( 'title', $post_object->ID) ): ?>
   <em><?php the_field('title', $post_object->ID); ?></em><br>
  <?php endif; ?>

  <? if( get_field( 'dates', $post_object->ID) ): ?>
   <?php the_field('dates', $post_object->ID); ?>
  <?php endif; ?>

  </div>
  </a>
  <br><br>

<?php endforeach; ?>

<?php endif; ?>

谢谢你的帮助!

找到我的答案谢谢:http://support.advancedcustomfields.com/discussion/5846/adding-args-to-post_objects-get_field/p1

标签:wordpress,php,custom-fields
来源: https://codeday.me/bug/20190529/1178405.html