php - 将 ACF Post Object 字段添加到 Wordpress 管理列
问题描述
我有一个自定义帖子类型,用于具有两个 ACF 字段的书籍,book_title
并且book_author
. 对于书中的段落,我有一个单独的自定义帖子类型,它将一本书作为 ACF 帖子对象拉入段落自定义帖子类型中具有相同字段名称的两个字段中。
我希望能够将book_title
和book_author
字段显示为段落自定义帖子类型列表中的列。我目前能够提取书名,但这只是因为我正在获取帖子的标题,而不是帖子中的实际book_title
字段。有没有办法从这样的帖子对象中获取字段并将它们设置为列?
这是我的段落自定义帖子类型文件中的当前代码:
function add_acf_columns($columns)
{
return array_merge($columns, array(
'book_title' => __('Book Title') ,
'book_author' => __('Book Author')
));
}
add_filter('manage_passages_posts_columns', 'add_acf_columns');
function passages_custom_column($column, $post_id)
{
switch ($column)
{
case 'book_title':
echo get_the_title(get_field('book_title', $post_id));
break;
case 'book_author':
echo get_post_meta($post_id, 'book_author', true);
break;
}
}
add_action('manage_passages_posts_custom_column', 'passages_custom_column', 10, 2);
解决方案
我对你的实际设置有点困惑,但一般的想法应该适用于此。当使用ACF 的“Relational > Post Object”字段时,它存储实际的相对WP_Post
对象。这使您可以从中引用任何您想要的东西,而无需调用任何特殊的东西。
只需执行以下操作:
$object = get_field( 'name_of_field', $post_id );
将使您可以访问该帖子/自定义帖子类型中所需的任何数据:
$title = $object->post_title;
$author_id = $object->post_author;
所以,就像我提到的,我对你的实际字段名称和实际对象的存储位置有点困惑,但我认为同一个 post 对象存储在book_title
和book_author
字段中?无论哪种方式,您只需要使用 获取WP_Post
对象get_field
,然后您就可以访问与其相关的所有内容。然后你可以输出标题,并使用类似的东西get_the_author_meta()
来获取作者的显示/名字/姓氏等。
add_action('manage_passages_posts_custom_column', 'passages_custom_column', 10, 2);
function passages_custom_column($column, $post_id) {
switch( $column ){
case 'book_title':
$book_object = get_field( 'book_title', $post_id );
echo ($book_object) ? $book_object->post_title : '';
break;
case 'book_author':
$book_object = get_field( 'book_author', $post_id );
if( $book_object ){
echo get_the_author_meta( 'display_name', $book_object->post_author );
}
break;
}
}
推荐阅读
- ruby - 一串两种颜色
- php - 如何将大部分一致的文件名解析为有意义的部分?
- python - 如何在选项卡内的 tkinter 框架中的多次输入(有条件)期间使滚动条工作?
- html - 不能把它放在内联块中
- javascript - 如何将外部 HTML 页面添加到我的当前页面,这是另一个 HTML
- javascript - 按数字索引对javascript中的关联数组进行排序
- http - Google Cloudfunction 中的最大并发 http 连接数
- c - 使用 stm32f042 作为 spi 从机
- python - 具有不相等行和列的两个二维 numpy 数组的交集
- html - 如何仅使用 CSS 在 HTML 按钮上添加 FontAwsome 图标?