【问题标题】:Wordpress - filter admin user list with custom field (ACF)Wordpress - 使用自定义字段(ACF)过滤管理员用户列表
【发布时间】:2019-12-12 03:48:41
【问题描述】:

我想通过以下方式扩展我的用户列表视图:

  • 添加基于自定义字段的可排序列
  • 提供按自定义字段过滤列表的可能性

所以我做了什么:

  • 通过 ACF 创建自定义字段(名称为:opiekun_klienta)
  • 通过用户设置输入了正确的值(所以我从列表中选择了一个值)

我有这么一段代码:

add_filter( 'manage_users_columns', 'column_register_wpse_101322' );
add_filter( 'manage_users_custom_column', 'column_display_wpse_101322', 10, 3 );

function column_register_wpse_101322( $columns )
{

    $columns['accountmanager_col'] = 'Opiekun';
    return $columns;
}

function column_display_wpse_101322( $empty, $column_name, $opiekunklienta )
{
    $opiekunklienta = get_field( "opiekun_klienta" );
    if ( 'accountmanager_col' != $column_name )
        return $empty;

    return "<strong>$opiekunklienta</strong>";

代码添加了列,但没有显示任何值。代码中的错误在哪里?我找不到它..除此之外,我想创建一个下拉+提交按钮来过滤列表(因此下拉列表将显示自定义字段的值。我不知道从哪里开始..

感谢任何提示!

【问题讨论】:

  • 请找到我的答案
  • 请检查带有动态用户 ID 的更新代码。

标签: php wordpress filter advanced-custom-fields


【解决方案1】:

更新代码:

add_filter('manage_users_columns', 'column_register_wpse_101322');

add_filter('manage_users_custom_column', 'column_display_wpse_101322', 10, 3);

function column_register_wpse_101322( $columns )
{

    $columns['accountmanager_col'] = 'Opiekun';
    return $columns;
}



 function column_display_wpse_101322( $post_id, $column_name, $opiekunklienta )
{


$opiekunklienta_code = get_user_meta( $opiekunklienta,'opiekun_klienta',true); 

    if ( 'accountmanager_col' != $column_name )
    return $empty;    
    return "<strong>$opiekunklienta_code</strong>";
}

【讨论】:

  • 感谢您的回答。您的代码 (user_ID) 仅适用于单个帐户。如果我想对所有帐户都这样做怎么办?含义 - 如何不让 user_id 固定 = 1?
  • 它有效 - 但我有最后的评论。在当前形状下,代码生成值作为 ID(数字;例如“20)。如何使其显示 display_name?我尝试使用像 $opiekunklienta_code["display_name"] 之类的东西,但这什么都不显示。我正在使用 ACF 关系(用户)字段(如果它很重要)
【解决方案2】:

这就是在类似情况下对我有用的方法:

add_filter( 'manage_users_columns', 'column_register_wpse_101322' );
add_filter( 'manage_users_custom_column', 'column_display_wpse_101322', 10, 3 );

function column_register_wpse_101322( $columns )
{
  $columns['accountmanager_col'] = 'Opiekun';
  return $columns;
}

function column_display_wpse_101322( $value, $column_name, $user_id )
{
  $user_info = get_user_meta( $user_id, 'opiekun_klienta', true );
  if($column_name == 'accountmanager_col') return $user_info;
  return $value;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2021-07-30
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多