在自定义列中显示高级自定义字段值 (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_actioninit 之后的某个时间被解雇。 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 允许在自定义程序中的窗口小部件中使用高级自定义字段的插件

如何在自定义 woocommerce 结帐字段中显示 $_SESSION 变量?

使用 subdate 在自定义列中计算以获取前一天

在 WooCommerce 挂钩中显示高级自定义字段 (ACF) 值