pow*_*uoy 1 php wordpress advanced-custom-fields
我使用 ACF 的“灵活内容”创建了一个相当先进的“页面构建器”,作者可以在其中创建一个“部分”(基本上只是一个带有 CSS 类名称和 ID 的包装元素),然后添加我所有的灵活内容(图像、所见即所得等)。
我想做的是为非管理员隐藏一些字段。我不希望任何旧的编辑器能够进入并更改部分的 ID 或类名称(因为这会弄乱布局)。
我知道 ACF 管理中的“规则”面板,您可以在其中选择仅向一种类型的用户角色显示特定字段组,但我想要的是同一件事,但针对各个字段。
它似乎无法从管理界面中完成,但我想知道是否有人知道如何从我的functions.php 文件中完成它?也许我可以根据当前用户的角色挂钩并禁用某些过滤器或操作?
我附上了两张屏幕截图,显示了我想要隐藏的内容:
我想从“添加行”菜单中隐藏这些选项:
我希望这些面板对非管理员不可见:
编辑:当我们这样做时,我也不介意从可重复项中隐藏单个字段。您会注意到第一个屏幕截图中的“修饰符”字段,这也很好地对非管理员隐藏。我想这两个问题的解决方案几乎是相同的?
从 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' );
?>
Run Code Online (Sandbox Code Playgroud)
该过滤器的文档可以在这里找到: https: //www.advancedcustomfields.com/resources/acf-prepare_field/
| 归档时间: |
|
| 查看次数: |
7557 次 |
| 最近记录: |