不同自定义帖子类型和wp_reset_postdata中的ACF Post对象

时间:2018-05-01 07:19:56

标签: wordpress loops advanced-custom-fields

我正在使用名为WHITEBOARD的自定义帖子类型运行循环 - 在白板内我有一个帖子对象字段 project_select - 这引用了一个名为PROJECTS的不同自定义帖子类型。在我的 作业_# 的代码中,我实际上希望它来自PROJECTS帖子类型 - 它此刻不返回任何内容,因为它在白板帖子类型中循环。

我尝试使用默认的ACF post对象代码来提取此数据,但因为它也使用了wp_reset_postdata - 该字段的其余部分无法显示。

如何从不同的帖子类型(项目)中显示job_#字段?

代码:

<?php $args = array('post_type' => 'whiteboard', 'author' =>  $current_user->ID, 'orderby' =>  'post_date', 'order' =>  'ASC', 'posts_per_page' => -1 ); $myposts = get_posts( $args ); foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
    <tr class="wb-content">
    <td><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></td>
    <td><?php the_field('job_#'); ?></td>
    <td><?php the_field('site_meeting'); ?></td>
    <td><?php the_field('client_meeting'); ?></td>
    <td><?php the_field('request_for_quote'); ?></td>
    <td><?php the_field('authority_to_proceed'); ?></td>
    <td><?php the_field('final_quote_acceptance'); ?></td>
    <td><?php the_field('draft_contracts'); ?></td>
    <td><?php the_field('final_contracts'); ?></td>
    <td><?php the_field('client_meeting_contracts'); ?></td>
    <td><?php the_field('development_approval'); ?></td>
    <td><?php the_field('building_permit'); ?></td>
    <td><?php the_field('colour_selection_docs'); ?></td>
    <td><?php the_field('client_meeting_colour'); ?></td>
    <td><?php the_field('estimate_vos'); ?></td>
    <td><?php the_field('amend_docs'); ?></td>
    <td><?php the_field('colour_selection_&_construction_certificate'); ?></td>
    <td><?php the_field('schedule_project'); ?></td>
    <td><?php the_field('purchase_orders'); ?></td>
    <td><?php the_field('matrix_&_plan_printing'); ?></td>
    <td><?php the_field('client_meeting_super'); ?></td>
    <td><?php the_field('schedule_confirmed'); ?></td>
    <td><?php the_field('site_start'); ?></td>
    <td><?php the_field('est_&_supervision_schedule'); ?></td>
    </tr>
<?php endforeach; wp_reset_postdata(); ?>

1 个答案:

答案 0 :(得分:0)

在show job_#之前使用下面的代码并使用$ metas显示它,因为$ metas将存储作业的所有元值_#。

global $wpdb;

$metas = $wpdb->get_results( 
  $wpdb->prepare("SELECT meta_value FROM $wpdb->postmeta where meta_key = %s", 'job_#')
 );