在自定义列中显示高级自定义字段值 (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文章对我帮助很大