在自定义列中显示高级自定义字段值 (wp_list_table)
Posted
技术标签:
【中文标题】在自定义列中显示高级自定义字段值 (wp_list_table)【英文标题】:Show advanced custom field value in custom column (wp_list_table) 【发布时间】:2015-07-07 05:08:59 【问题描述】:我创建了一个名为 address 的自定义帖子类型,并使用插件 advanced custom fields 为其添加了值。我想在 wp-list-table 的自定义列中显示这些值。
所以我设法在自定义帖子类型(地址)中添加了一个名为 views 的列。使用下面的代码。
add_filter('manage_edit-address_columns', 'my_columns');
function my_columns($columns)
$columns['views'] = 'Views';
return $columns;
现在我想用我创建并称为 'reserveer_url_theater_terra'(这是一个 url 字段)的高级自定义字段中的数据填充此列(views)和绑定到自定义帖子类型 address,但它只显示一个空列 'views' 没有来自 'reserveer_url_theater_terra' 字段的值。我做错了什么,有人能指出我正确的方向吗?我应该使用 wpdb 来获取值吗?或者还有什么我应该做的吗?提前谢谢你。
add_action('manage_posts_custom_column', 'my_show_columns');
function my_show_columns($name)
global $post;
switch ($name)
case 'views':
$views = get_post_meta($post->ID, 'reserveer_url_theater_terra', true);
echo $views;
我尝试按照 Zork 的建议使用 get_field,但仍然无法使用。
$views = get_field('reserveer_url_theater_terra', $post->ID);
【问题讨论】:
对此我有两个想法:1. 确保add_action
在init
之后的某个时间被解雇。 ACF api-calls 以前不起作用。 2. 尝试使用 get_field() 而不是 get_post_meta()
【参考方案1】:
我找到了我的问题的答案,看起来我的过滤器、操作和函数名称不正确。我没有正确添加自定义帖子类型(address)(愚蠢)和任何需要的地方。这样做之后,一切都开始正常工作。感谢您的帮助。
add_action("manage_address_posts_custom_column", "address_custom_columns");
add_filter("manage_edit-address_columns", "address_edit_columns");
function address_edit_columns($columns)
$columns = array(
"cb" => "<input type=\"checkbox\" />",
"title" => "Titel",
"theater" => "Theater",
"plaats" => "Plaats",
"datum" => "Datum",
);
return $columns;
function address_custom_columns($column)
global $post;
switch ($column)
case "theater":
the_field('theater', $post->ID );
break;
case "plaats":
the_field('plaatss', $post->ID );
break;
case "datum":
the_field('datum', $post->ID );
break;
【讨论】:
【参考方案2】:问题是这样为我解决的:
自定义帖子类型的名称:address
要在列表中显示的列名:Views
acf 字段名称:reserveer_url_theater_terra
/*
* Add columns to address post list
*/
function add_acf_columns ( $columns )
return array_merge ( $columns, array (
'views' => __ ( 'Views' ),
) );
add_filter ( 'manage_address_posts_columns', 'add_acf_columns' );
/*
* Add columns to address post list
*/
function address_custom_column( $column, $post_id )
switch ( $column )
case 'views':
echo get_field('reserveer_url_theater_terra', $post_id);
break;
add_action ( 'manage_address_posts_custom_column', 'address_custom_column', 10, 2 );
This 文章对我帮助很大。
【讨论】:
以上是关于在自定义列中显示高级自定义字段值 (wp_list_table)的主要内容,如果未能解决你的问题,请参考以下文章
Jira scriptrunner脚本字段:在自定义字段上,计算其他自定义字段的值并显示总计
php 允许在自定义程序中的窗口小部件中使用高级自定义字段的插件
php 允许在自定义程序中的窗口小部件中使用高级自定义字段的插件