Wordpress - 使用自定义字段(ACF)过滤管理员用户列表

时间:2018-03-13 07:54:35

标签: php wordpress filter advanced-custom-fields

我希望通过以下方式扩展我对用户列表的看法:

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

所以我做了什么:

  • 通过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>";

代码添加了列,但没有显示任何值。代码中的错误在哪里?我找不到它..最重要的是我想创建一个下拉+提交按钮来过滤一般的列表(所以下拉列表将显示自定义字段的值。我不知道从哪里开始.. < / p>

感谢任何提示!

2 个答案:

答案 0 :(得分:1)

更新代码:

add_filter(&#39; manage_users_columns&#39;,&#39; column_register_wpse_101322&#39;);

add_filter(&#39; manage_users_custom_column&#39;,&#39; column_display_wpse_101322&#39;,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>";
}

enter image description here

答案 1 :(得分: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( $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;
}