如何在 WP-admin UI 中隐藏高级自定义字段 (ACF)?
How to hide advanced custom fields(ACF) in the WP-admin UI?
查看下面的截图;我只想在 wordpress 后端为自定义用户隐藏某些 ACF 字段。
如果你想用 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可以是"contributor".
从 ACF 5.0.0 开始,有一种无需输出 CSS 即可执行此操作的更简单方法。如果您使用 acf/prepare_field
挂钩和 return 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/
查看下面的截图;我只想在 wordpress 后端为自定义用户隐藏某些 ACF 字段。
如果你想用 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可以是"contributor".
从 ACF 5.0.0 开始,有一种无需输出 CSS 即可执行此操作的更简单方法。如果您使用 acf/prepare_field
挂钩和 return 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/