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