具有多个值的ACF关系字段不返回短代码中的任何值

问题描述 投票:0回答:1

我有 2 种自定义帖子类型:访客和视频。它们通过“rel_guest_video”关系字段进行多对多关联。该关系是双向的,我发现只有当两种帖子类型中的关系字段具有相同的 slug 时双向性才起作用,并且我已经做到了。

我知道双向性是有效的,因为我已经测试过它。该字段设置为双向这一事实可能并不重要,但我很难弄清楚为什么我的短代码不起作用,所以我提一下它以防万一。

这是我的简码。出于测试目的,我对一个我知道存在的“video_id”进行了硬编码,并且应该返回两个相关的访客。但是,我总是收到“未找到相关客人”错误。

当我调试 $lated_guests 时,我什么也没有得到。没有错误,没有值。

事实上 rel_guest_video 字段是双向的,这是否导致了问题?

// Register the shortcode
add_shortcode('related_guest_info', 'related_guest_info_shortcode');

// Define the shortcode function
function related_guest_info_shortcode($atts) {
    // Extract shortcode attributes
    $atts = shortcode_atts(array(
        'video_id' => 12834, // Default value
    ), $atts, 'related_guest_info');

    // Ensure video_id is set and numeric
    if (!empty($atts['video_id']) && is_numeric($atts['video_id'])) {
        // Query related guests using ACF relationship field
        $related_guests = get_field('rel_guest_video', $atts['video_id']);
        ?>
        <pre style='background:bisque'><?php print_r($related_guests); ?></pre>
        <?php

        // Output guest info
        if ($related_guests) {
            foreach ($related_guests as $guest) {
                $first_name = get_field('first_name', $guest->ID);
                $last_name = get_field('last_name', $guest->ID);
                
                // Display guest info
                echo '<div class="guest-info">';
                echo 'First Name: ' . $first_name . '<br>';
                echo 'Last Name: ' . $last_name . '<br>';
                echo '</div>';
            }
        } else {
            echo 'No related guests found.';
        }

        // Reset post data
        wp_reset_postdata();
    } else {
        echo 'Invalid video ID.';
    }
}
wordpress advanced-custom-fields
1个回答
0
投票

如果我理解正确的话,

rel_guest_video
字段是一个关系,即一个数组。

“Relation”字段将返回一个元素数组,其中每个元素是 WP_Post 对象或整数值,具体取决于设置的返回格式。

因此在数组中找到必要的帖子

$related_guest
,然后
$related_guests
已经附加到它了。 总而言之 - 这只是猜测,因为我不明白你是如何将其全部设置在那里的,并且你只提供了一段代码。

© www.soinside.com 2019 - 2024. All rights reserved.