Auto fechar (ocultar) metabox personalizado / definir o estado padrão

Estou usando a function WordPress add_meta_box() para adicionar minha própria metabox personalizada.

Então, como posso fechar / esconder automaticamente na página aberta?

Atualmente, eu apenas adiciono uma class CSS closed ao elemento

da metabox via jQuery, assim:

HTML: (exemplo)

 

jQuery:

 $("#my_metabox.postbox").addClass("closed"); 

Mas existe uma function do WordPress para fazer isso?

Solutions Collecting From Web of "Auto fechar (ocultar) metabox personalizado / definir o estado padrão"

postbox_classs a postbox_classs . postbox_classs é a function que exibirá as classs para a metabox.

 apply_filters( "postbox_classs_{$page}_{$id}", $classs ) 

Seu código pode ser assim:

 add_action( 'add_meta_boxes', 'add_my_metabox' ); function add_my_metabox() { $id = 'my-metabox'; $title = 'My Metabox'; $callback = 'my_metabox_content'; $page = 'post'; add_meta_box( $id, $title, $callback, $page ); add_filter( "postbox_classs_{$page}_{$id}", 'minify_my_metabox' ); } function my_metabox_content() { ... } /* * $classs is an array */ function minify_my_metabox( $classs ) { if ( isset( $_POST['my_condition'] ) && 'my_condition' == $_POST['my_condition'] ) { array_push( $classs, 'closed' ); } return $classs; } 

A mudança de um estado de abertura / fechamento de uma metaboxes é feita via JS pela WP também – obviamente, uma vez que acontece no lado do cliente em seu navegador.

O script que faz isso passa pelo handle 'postbox' *

Esse script faz o mesmo que você faz manualmente (adiciona uma class closed para fechar metaboxes). Além disso, ele verifica o estado de uma metabox via if(e.hasClass("closed")) .
Daí o seu modo de definir o estado padrão é totalmente bom.

* Como um lado: ou seja, se você precisar dessa funcionalidade em páginas de administração personalizadas, é isso que precisa ser enqueued ( wp_enqueue_scripts( 'postbox' ); )