在自定义列中显示高级自定义字段值 (wp_list_table)
Show advanced custom field value in custom column (wp_list_table)
我创建了一个名为 address 的自定义 post 类型,并使用插件 advanced custom fields 添加了值。我想在 wp-list-table 的自定义列中显示这些值。
所以我设法向名为 views 的自定义 post 类型(地址)添加了一列。使用下面的代码。
add_filter('manage_edit-address_columns', 'my_columns');
function my_columns($columns) {
$columns['views'] = 'Views';
return $columns;
}
现在我想用我制作并调用 'reserveer_url_theater_terra'[= 的高级自定义字段中的数据填充此列 (views) 30=](这是一个 url 字段)并绑定到自定义 post 类型 地址 ,但它只显示一个空列 '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);
我找到了问题的答案,我的过滤器、操作和函数似乎没有正确命名。我没有正确(愚蠢)和需要的地方添加自定义 post 类型(地址)。这样做之后,一切都开始正常工作。感谢您的帮助。
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;
}
}
我的问题是这样解决的:
- 自定义名称 post 类型:
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文章对我帮助很大
我创建了一个名为 address 的自定义 post 类型,并使用插件 advanced custom fields 添加了值。我想在 wp-list-table 的自定义列中显示这些值。
所以我设法向名为 views 的自定义 post 类型(地址)添加了一列。使用下面的代码。
add_filter('manage_edit-address_columns', 'my_columns');
function my_columns($columns) {
$columns['views'] = 'Views';
return $columns;
}
现在我想用我制作并调用 'reserveer_url_theater_terra'[= 的高级自定义字段中的数据填充此列 (views) 30=](这是一个 url 字段)并绑定到自定义 post 类型 地址 ,但它只显示一个空列 '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);
我找到了问题的答案,我的过滤器、操作和函数似乎没有正确命名。我没有正确(愚蠢)和需要的地方添加自定义 post 类型(地址)。这样做之后,一切都开始正常工作。感谢您的帮助。
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;
}
}
我的问题是这样解决的:
- 自定义名称 post 类型:
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文章对我帮助很大