如何在WP-admin UI中隐藏高级自定义字段(ACF)?

时间:2018-04-24 22:29:03

标签: wordpress wordpress-theming custom-wordpress-pages wordpress-thesis-theme

查看下面的截图;我想要做的就是在wordpress后端隐藏自定义用户的某些ACF字段。

enter image description here

2 个答案:

答案 0 :(得分:3)

如果您的意思是使用CSS隐藏它,那么您应该将自定义CSS插入管理页脚区域。 例如,您可以将这种类型的代码添加到主题的functions.php文件中:

add_action('admin_footer', 'my_admin_hide_cf');
function my_admin_hide_cf() {
    $u=wp_get_current_user();
    $user_roles = $u->roles;
    if ($user_roles[0]=='CUSTOM_USER_ROLE_NAME'){
    echo '
   <style>
   #acf-FIELD_SLUG_HERE {display:none}
   </style>';
 }
}

当然,你应该用正确的值替换FIELD_SLUG_HERE和CUSTOM_USER_ROLE_NAME值。 F.E. #acf-FIELD_SLUG_HERE可以是#acf-url,CUSTOM_USER_ROLE_NAME可以是“贡献者”。

答案 1 :(得分:0)

从ACF 5.0.0开始,没有输出CSS的简便方法。如果您使用acf/prepare_field钩子并返回false,则该字段将不会呈现。

<?php
function so37111468_hide_field( $field ) {

  // hide the field if the current user is not able to save options within the admin
  if ( ! current_user_can( 'manage_options' ) ) {
    return false;
  }

  return $field;
}

add_filter( 'acf/prepare_field/key=MYFIELDKEY', 'so37111468_hide_field' );
?>

可以在以下位置找到该过滤器的文档:https://www.advancedcustomfields.com/resources/acf-prepare_field/