PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 3.8.9
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v3.8.9
4.9.2 4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 All 200 releases
← All changes | includes/Editors/BlockEditor/Block.php +7 -50 4.9.03.8.9 View file →
@@ -94,62 +94,19 @@
94 94 $this->load_frontend_styles();
95 95 $this->load_frontend_scripts();
96 96 }
97 97
98 - /**
99 - * Flatten a decoded selection attribute into a plain list of values.
100 - *
101 - * Selection attributes are saved by the editor as `[{ value, label }]`
102 - * objects, but a bare list of values — `[5, 7]` — is what REST clients and
103 - * other programmatic writers naturally produce. Both shapes are accepted:
104 - * an array element contributes its `$key`, a scalar element contributes
105 - * itself, and elements that carry no value are dropped.
106 - *
107 - * @since 4.9.0
108 - *
109 - * @param mixed $decoded Decoded attribute value. Anything that is not an array yields an empty list.
110 - * @param string $key Key holding the value on object elements. Default 'value'.
111 - *
112 - * @return array Re-indexed list of values.
113 - */
114 - public static function normalize_id_list( $decoded, $key = 'value' ) {
115 - if ( ! is_array( $decoded ) ) {
116 - return [];
117 - }
118 -
119 - $_values = array_map(
120 - function ( $item ) use ( $key ) {
121 - return is_array( $item ) ? ( isset( $item[ $key ] ) ? $item[ $key ] : null ) : $item;
122 - },
123 - $decoded
124 - );
125 -
126 - return array_values(
127 - array_filter(
128 - $_values,
129 - function ( $value ) {
130 - return null !== $value;
131 - }
132 - )
133 - );
134 - }
135 -
136 - /**
137 - * Decode a JSON attribute string into a list of values.
138 - *
139 - * @since 4.9.0 Bare-value lists (`"[5]"`) are accepted alongside the
140 - * editor's `[{ value, label }]` form, and no longer warn.
141 - *
142 - * @param mixed $data JSON encoded attribute value; non-strings yield an empty list.
143 - * @param string $key Key holding the value on object elements. Default 'value'.
144 - *
145 - * @return array
146 - */
147 98 public function string_to_array( $data = [], $key = 'value' ) {
148 99 $_return_val = [];
149 100
150 101 if ( is_string( $data ) && ! empty( $data ) ) {
151 - $_return_val = self::normalize_id_list( json_decode( $data, true ), $key );
102 + $_return_val = json_decode( $data, true );
103 + $_return_val = array_map(
104 + function ( $item ) use ( &$key ) {
105 + return $item[ $key ];
106 + },
107 + $_return_val
108 + );
152 109 }
153 110
154 111 return $_return_val;
155 112 }