【问题标题】:Grab Post Types Based on ID of another Post Type根据其他帖子类型的 ID 抓取帖子类型
【发布时间】:2018-09-24 06:27:09
【问题描述】:

所以我有一个客户,他的员工会获得评论。客户希望他们的简历页面与他们的评论页面分开。我有一个用于简历和评论的页面模板。

每份推荐书都有一个 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; ?>

【问题讨论】:

    标签: wordpress foreach relationship advanced-custom-fields


    【解决方案1】:
     $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 将通配符附加到字符串以匹配多个,但不清楚为什么引号起作用而简单的等于不起作用。

    【讨论】:

    • 尝试任何一种方式仍然会返回每条评论,而不仅仅是具有相关字段的评论。不过关闭。
    • @OMGDrAcula testimonial 字段是一个关系字段,但您将它设置为返回什么?它可以返回和对象或 ID。让它返回 ID 并重试。做一个 var_dump($subject);确定返回的内容
    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2016-07-24
    相关资源
    最近更新 更多