Wordpress ACF php 关系

Posted

技术标签:

【中文标题】Wordpress ACF php 关系【英文标题】:Wordpress ACF php relationships 【发布时间】:2020-07-03 05:03:39 【问题描述】:

我整天都在阅读论坛,我正在努力想出解决这个问题的方法。

我有 2 种自定义帖子类型: 人们 工作

使用 ACF 关系,我有一个名为 Job Client (job_client) 的 2 向关系字段,我们可以将相关的客户/客户链接到作业。

我想在工作页面上显示的是从“人员”自定义帖子类型中提取的客户的一些基本信息。雇主、联系方式等。这些设置为 ACF 字段。

到目前为止,我已经获得了以下代码。它可以很好地显示标准的 wordpress 字段(标题、永久链接),但我在 ACF 字段上苦苦挣扎。任何帮助/建议将不胜感激。

<?php
$job_client_connect = get_posts(array(
    'post_type' => 'people',
    'meta_query' => array(
        array(
            'key' => 'job_client', // name of custom field
            'value' => '"' . get_the_ID() . '"', // matches exaclty "123", not just 123. This prevents a match for "1234"
            'compare' => 'LIKE'
        )
    )
));

?>
<?php if( $job_client_connect ): ?>
    <table>
    <?php foreach( $job_client_connect as $job_client_connect ):?>
        <tr>
            <td>
                <a href="<?php echo get_permalink( $job_client_connect->ID ); ?>">
                    <?php echo get_the_title( $job_client_connect->ID ); ?>
                </a>
                <p><?php echo get_field('employer', $job_client_connect->ID ); ?></p>
            </td>
        </tr>
    <?php endforeach; ?>
    </table>
<?php endif; ?>

【问题讨论】:

“雇主”是个什么样的字段?是文本字段吗? 不,它与“公司”自定义帖子类型有关 啊,似乎关系字段返回了一个帖子对象数组; advancedcustomfields.com/resources/relationship 从我之前的回答中尝试 post_title; ?> 关系字段返回一个帖子对象数组。 [0] 为您提供数组中的第一个 post 对象。 w3schools.com/php/php_arrays.asp $employer 是一组雇主职位。所以 $employer[0] 给了你列表中的第一个帖子。 $employer[1] 会给你第二个。如果您想要 post 对象的其他值,您可以通过属性名称 $employer[0]->post_content、$employer[0]->ID 等访问它们...您可以 用于所有对象属性。 【参考方案1】:

为任何可能觉得有用的人提供完整的工作代码

<?php
$job_client_connect = get_posts(array(
    'post_type' => 'people', // name of post type
    'meta_query' => array(
        array(
            'key' => 'job_client', // name of custom field
            'value' => '"' . get_the_ID() . '"', // matches exaclty "123", not just 123. This prevents a match for "1234"
            'compare' => 'LIKE'
        )
    )
));

?>

<?php if( $job_client_connect ): ?>
    <table>
    <?php foreach( $job_client_connect as $job_client_connect ):?>
        <?php $employer = get_field('employer', $job_client_connect->ID ); ?>
        <tr>
            <td>
                <a href="<?php echo get_permalink( $job_client_connect->ID ); ?>">
                    <?php echo get_the_title( $job_client_connect->ID ); ?>
                </a>
                <p><?php echo $employer[0]->post_title; ?></p>



            </td>
        </tr>
    <?php endforeach; ?>
    </table>
<?php endif; ?>

【讨论】:

以上是关于Wordpress ACF php 关系的主要内容,如果未能解决你的问题,请参考以下文章

在 functions.php (WordPress) 中包含 ACF

php WordPress:在ACF字段中搜索,functions.php

Wordpress ACF 显示关系问题

php ACF自定义字段作为WordPress帖子标题

php WordPress多个帖子类型查询插件 - 由ACF排序

php 使用ACF,wpfeatherlight和WordPress的砌体网格。