Как скрыть расширенные настраиваемые поля (ACF) в пользовательском интерфейсе WP-admin? - PullRequest
0 голосов
/ 25 апреля 2018

Проверьте скриншот ниже;все, что я хочу сделать, это скрыть определенные поля ACF для пользовательских пользователей в бэкэнде WordPress.

enter image description here

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Начиная с ACF 5.0.0, существует более простой способ сделать это без вывода CSS. Если вы используете acf/prepare_field hook и возвращаете 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/

0 голосов
/ 25 апреля 2018

Если вы хотите скрыть это с помощью 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 может быть "участник".

...