acf/短代码/预防访问

上次更新日期:2024年4月4日

描述

允许您限制ACF Shortcode可以输出的字段。从该过滤器返回true将阻止短代码输出值。

变更日志

  • 在版本6.2.7中添加

参数

应用过滤器(“acf/shortcode/provent_access”,$access_provented,$atts,$decoded_post_id,$decode _post_type,$field_type,$field)
  • $access_prevented(禁止访问) (布尔值)当前访问禁用状态。默认情况下为False,如果另一个筛选器阻止访问请求的字段值,则为true。
  • 美元atts (数组)作为短代码的一部分提供的完整属性数组。此数组可能包含领域根据短代码文档
  • $解码后id (int|string)这是正在检索的项目的解码ID。它可以是用户ID、术语ID、选项页前缀或ACF可以存储数据的任何其他地方的任何ID;与一起使用$decoded_post_type($decoded_post_type)知道是什么。
  • $解码后类型 (字符串)包含被查询对象类型的字符串。帖子、术语、评论、选项或用户
  • $field_type(字段类型) (字符串)字段类型为slug的字符串被输出。例如,文本文本_区域
  • $字段 (数组)字段对象的完整数组,包括其值。

示例:拒绝访问选项页面

此示例防止ACF短代码输出存储在选项页面中的任何值。

函数.php

<?php(电话)函数my_acf_prevent_access_to_options($access_prevented,$atts,$decoded_post_id,$decode _post_type){if(“选项”===$decoded_post_type){返回true;}return$access_prevented;}add_filter('acf/shortcode/provent_access','my_acf_provent_access_to_options',10,4);

示例:拒绝访问私人帖子上的字段值

此示例防止ACF短代码输出存储在不公开可见的帖子中的任何值。

函数.php

<?php(电话)函数my_acf_prevent_access_to_fields_on_private_posts($access_prevented,$atts,$decoded_post_id,$decode _post_type){if('post'===$decoded_post_type&&!is_post_publicly_viewable($decoded post_id)){返回true;}return$access_prevented;}add_filter('acf/shortcode/provent_access','my_acf_provent_acess_to_fields_on_private_posts',10,4);

示例:拒绝访问除“my_field_name”之外的所有字段

此示例防止ACF短代码输出除“my_field_name”字段以外的任何值。

函数.php

<?php(电话)函数my_acf_prevent_access_to_all_but_one_field($access_prevented,$atts,$decoded_post_id,$decode _post_type,$field_type,$field数组){if(“my_field_name”===$field_array[“name”]){返回false;}返回true;}add_filter('acf/shortcode/provent_access','my_acf_provent_acess_to_all_but_one_field',10,6);