3

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

在此处输入图像描述

4

2 回答 2

5

从 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/

于 2018-12-12T15:58:41.513 回答
4

如果您打算用 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 值。Fe #acf-FIELD_SLUG_HERE 可以是#acf-url,CUSTOM_USER_ROLE_NAME 可以是“贡献者”。

于 2018-04-25T08:26:24.520 回答