9 /** |
9 /** |
10 * Get the column headers for a screen |
10 * Get the column headers for a screen |
11 * |
11 * |
12 * @since 2.7.0 |
12 * @since 2.7.0 |
13 * |
13 * |
14 * @staticvar array $column_headers |
|
15 * |
|
16 * @param string|WP_Screen $screen The screen you want the headers for |
14 * @param string|WP_Screen $screen The screen you want the headers for |
17 * @return array Containing the headers in the format id => UI String |
15 * @return string[] The column header labels keyed by column ID. |
18 */ |
16 */ |
19 function get_column_headers( $screen ) { |
17 function get_column_headers( $screen ) { |
20 if ( is_string( $screen ) ) { |
18 if ( is_string( $screen ) ) { |
21 $screen = convert_to_screen( $screen ); |
19 $screen = convert_to_screen( $screen ); |
22 } |
20 } |
23 |
21 |
24 static $column_headers = array(); |
22 static $column_headers = array(); |
25 |
23 |
26 if ( ! isset( $column_headers[ $screen->id ] ) ) { |
24 if ( ! isset( $column_headers[ $screen->id ] ) ) { |
27 |
|
28 /** |
25 /** |
29 * Filters the column headers for a list table on a specific screen. |
26 * Filters the column headers for a list table on a specific screen. |
30 * |
27 * |
31 * The dynamic portion of the hook name, `$screen->id`, refers to the |
28 * The dynamic portion of the hook name, `$screen->id`, refers to the |
32 * ID of a specific screen. For example, the screen ID for the Posts |
29 * ID of a specific screen. For example, the screen ID for the Posts |
33 * list table is edit-post, so the filter for that screen would be |
30 * list table is edit-post, so the filter for that screen would be |
34 * manage_edit-post_columns. |
31 * manage_edit-post_columns. |
35 * |
32 * |
36 * @since 3.0.0 |
33 * @since 3.0.0 |
37 * |
34 * |
38 * @param array $columns An array of column headers. Default empty. |
35 * @param string[] $columns The column header labels keyed by column ID. |
39 */ |
36 */ |
40 $column_headers[ $screen->id ] = apply_filters( "manage_{$screen->id}_columns", array() ); |
37 $column_headers[ $screen->id ] = apply_filters( "manage_{$screen->id}_columns", array() ); |
41 } |
38 } |
42 |
39 |
43 return $column_headers[ $screen->id ]; |
40 return $column_headers[ $screen->id ]; |
78 * Filters the list of hidden columns. |
75 * Filters the list of hidden columns. |
79 * |
76 * |
80 * @since 4.4.0 |
77 * @since 4.4.0 |
81 * @since 4.4.1 Added the `use_defaults` parameter. |
78 * @since 4.4.1 Added the `use_defaults` parameter. |
82 * |
79 * |
83 * @param array $hidden An array of hidden columns. |
80 * @param string[] $hidden Array of IDs of hidden columns. |
84 * @param WP_Screen $screen WP_Screen object of the current screen. |
81 * @param WP_Screen $screen WP_Screen object of the current screen. |
85 * @param bool $use_defaults Whether to show the default columns. |
82 * @param bool $use_defaults Whether to show the default columns. |
86 */ |
83 */ |
87 return apply_filters( 'hidden_columns', $hidden, $screen, $use_defaults ); |
84 return apply_filters( 'hidden_columns', $hidden, $screen, $use_defaults ); |
88 } |
85 } |
89 |
86 |
116 } |
113 } |
117 foreach ( $wp_meta_boxes[ $screen->id ][ $context ][ $priority ] as $box ) { |
114 foreach ( $wp_meta_boxes[ $screen->id ][ $context ][ $priority ] as $box ) { |
118 if ( false == $box || ! $box['title'] ) { |
115 if ( false == $box || ! $box['title'] ) { |
119 continue; |
116 continue; |
120 } |
117 } |
121 // Submit box cannot be hidden |
118 // Submit box cannot be hidden. |
122 if ( 'submitdiv' == $box['id'] || 'linksubmitdiv' == $box['id'] ) { |
119 if ( 'submitdiv' === $box['id'] || 'linksubmitdiv' === $box['id'] ) { |
123 continue; |
120 continue; |
124 } |
121 } |
125 |
122 |
126 $widget_title = $box['title']; |
123 $widget_title = $box['title']; |
127 |
124 |
128 if ( is_array( $box['args'] ) && isset( $box['args']['__widget_basename'] ) ) { |
125 if ( is_array( $box['args'] ) && isset( $box['args']['__widget_basename'] ) ) { |
129 $widget_title = $box['args']['__widget_basename']; |
126 $widget_title = $box['args']['__widget_basename']; |
130 } |
127 } |
131 |
128 |
|
129 $is_hidden = in_array( $box['id'], $hidden, true ); |
|
130 |
132 printf( |
131 printf( |
133 '<label for="%1$s-hide"><input class="hide-postbox-tog" name="%1$s-hide" type="checkbox" id="%1$s-hide" value="%1$s" %2$s />%3$s</label>', |
132 '<label for="%1$s-hide"><input class="hide-postbox-tog" name="%1$s-hide" type="checkbox" id="%1$s-hide" value="%1$s" %2$s />%3$s</label>', |
134 esc_attr( $box['id'] ), |
133 esc_attr( $box['id'] ), |
135 checked( in_array( $box['id'], $hidden ), false, false ), |
134 checked( $is_hidden, false, false ), |
136 $widget_title |
135 $widget_title |
137 ); |
136 ); |
138 } |
137 } |
139 } |
138 } |
140 } |
139 } |
141 } |
140 } |
142 |
141 |
143 /** |
142 /** |
144 * Get Hidden Meta Boxes |
143 * Gets an array of IDs of hidden meta boxes. |
145 * |
144 * |
146 * @since 2.7.0 |
145 * @since 2.7.0 |
147 * |
146 * |
148 * @param string|WP_Screen $screen Screen identifier |
147 * @param string|WP_Screen $screen Screen identifier |
149 * @return array Hidden Meta Boxes |
148 * @return string[] IDs of hidden meta boxes. |
150 */ |
149 */ |
151 function get_hidden_meta_boxes( $screen ) { |
150 function get_hidden_meta_boxes( $screen ) { |
152 if ( is_string( $screen ) ) { |
151 if ( is_string( $screen ) ) { |
153 $screen = convert_to_screen( $screen ); |
152 $screen = convert_to_screen( $screen ); |
154 } |
153 } |
155 |
154 |
156 $hidden = get_user_option( "metaboxhidden_{$screen->id}" ); |
155 $hidden = get_user_option( "metaboxhidden_{$screen->id}" ); |
157 |
156 |
158 $use_defaults = ! is_array( $hidden ); |
157 $use_defaults = ! is_array( $hidden ); |
159 |
158 |
160 // Hide slug boxes by default |
159 // Hide slug boxes by default. |
161 if ( $use_defaults ) { |
160 if ( $use_defaults ) { |
162 $hidden = array(); |
161 $hidden = array(); |
163 if ( 'post' == $screen->base ) { |
162 if ( 'post' === $screen->base ) { |
164 if ( 'post' == $screen->post_type || 'page' == $screen->post_type || 'attachment' == $screen->post_type ) { |
163 if ( in_array( $screen->post_type, array( 'post', 'page', 'attachment' ), true ) ) { |
165 $hidden = array( 'slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv' ); |
164 $hidden = array( 'slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv' ); |
166 } else { |
165 } else { |
167 $hidden = array( 'slugdiv' ); |
166 $hidden = array( 'slugdiv' ); |
168 } |
167 } |
169 } |
168 } |
171 /** |
170 /** |
172 * Filters the default list of hidden meta boxes. |
171 * Filters the default list of hidden meta boxes. |
173 * |
172 * |
174 * @since 3.1.0 |
173 * @since 3.1.0 |
175 * |
174 * |
176 * @param array $hidden An array of meta boxes hidden by default. |
175 * @param string[] $hidden An array of IDs of meta boxes hidden by default. |
177 * @param WP_Screen $screen WP_Screen object of the current screen. |
176 * @param WP_Screen $screen WP_Screen object of the current screen. |
178 */ |
177 */ |
179 $hidden = apply_filters( 'default_hidden_meta_boxes', $hidden, $screen ); |
178 $hidden = apply_filters( 'default_hidden_meta_boxes', $hidden, $screen ); |
180 } |
179 } |
181 |
180 |
182 /** |
181 /** |
183 * Filters the list of hidden meta boxes. |
182 * Filters the list of hidden meta boxes. |
184 * |
183 * |
185 * @since 3.3.0 |
184 * @since 3.3.0 |
186 * |
185 * |
187 * @param array $hidden An array of hidden meta boxes. |
186 * @param string[] $hidden An array of IDs of hidden meta boxes. |
188 * @param WP_Screen $screen WP_Screen object of the current screen. |
187 * @param WP_Screen $screen WP_Screen object of the current screen. |
189 * @param bool $use_defaults Whether to show the default meta boxes. |
188 * @param bool $use_defaults Whether to show the default meta boxes. |
190 * Default true. |
189 * Default true. |
191 */ |
190 */ |
192 return apply_filters( 'hidden_meta_boxes', $hidden, $screen, $use_defaults ); |
191 return apply_filters( 'hidden_meta_boxes', $hidden, $screen, $use_defaults ); |
196 * Register and configure an admin screen option |
195 * Register and configure an admin screen option |
197 * |
196 * |
198 * @since 3.1.0 |
197 * @since 3.1.0 |
199 * |
198 * |
200 * @param string $option An option name. |
199 * @param string $option An option name. |
201 * @param mixed $args Option-dependent arguments. |
200 * @param mixed $args Option-dependent arguments. |
202 */ |
201 */ |
203 function add_screen_option( $option, $args = array() ) { |
202 function add_screen_option( $option, $args = array() ) { |
204 $current_screen = get_current_screen(); |
203 $current_screen = get_current_screen(); |
205 |
204 |
206 if ( ! $current_screen ) { |
205 if ( ! $current_screen ) { |