根据其他帖子类型的ID抓取帖子类型

时间:2018-04-13 20:31:30

标签: wordpress foreach relationship advanced-custom-fields

所以我有一个客户谁有工作人员得到评论。客户希望将他们的生物页面与他们的评论页面分开。我有一个bios的页面模板和评论。

每个推荐书都有一个ACF关系字段,客户可以在其中选择评论的生物。这些评论将由客户手动输入,因为它们特定于他们自己的客户。

如何获取分配给特定人员的评论,然后将其显示在该人员单独的评论页面上。

我尝试了这个并且它给了我一个数组,但遗憾的是我输入的每个测试评论而不仅仅是分配给特定人的两个

<?php 

                    /*
                    *  Query posts for a relationship value.
                    *  This method uses the meta_query LIKE to match the string "123" to the database value a:1:{i:0;s:3:"123";} (serialized array)
                    */

                    $subject = the_field('testimonial_broker', $post->ID);

                    $testimonials = get_posts(array(
                        'post_type' => 'testimonial',
                        'posts_per_page' => -1, 
                        'post_status' => 'publish',
                        'meta_query' => array(
                            array(
                                'key' => 'testimonial_broker', 
                                'value' => $subject,
                                'compare' => 'LIKE',
                            )
                        )
                    ));
                    var_dump($testimonials);
                    ?>
                    <?php if( $testimonials ): ?>

                        <?php foreach( $testimonials as $testimonial ): ?>
                            <?php 

                            $photo = get_field('testimonial_logo', $testimonial->ID);
                            $testimonial_text = get_field('testimonial_body', $testimonial->ID);

                            var_dump($photo);
                            var_dump($testimonial_text);

                            ?>
                            <div class="row testimonial align-items-center">
                                <div class="col-lg-3">

                                </div>
                                <div class="col-lg-9 bg-offwhite">

                                </div>
                            </div>
                        <?php endforeach; ?>

                    <?php endif; ?>

1 个答案:

答案 0 :(得分:0)

 $subject = get_field('testimonial_broker', post->id); //returns post     object

$testimonials = get_posts(array(
                        'post_type' => 'testimonial',
                        'post_per_page' => -1, 
                        'post_status' => 'publish',
                        'meta_query' => array(
                                                          array(
                                                                  'testimonial_broker', // name of custom field
                                                                   'value' => '"' . $subject->id. '"',
                                                                   'compare' => 'LIKE'
                                                            )
                           )

));

我正在研究为什么必须用引号括起来的解释。使用LIKE将通配符附加到字符串以匹配多个,但不清楚为什么引号有效,而简单的等于不会。