Metabox de conteúdo de posttype personalizado

Em um plugin, criei um tipo de postagem personalizado que armazena xml que representa modelos no conteúdo das respectivas postagens.

Eu também criei uma meta checkbox personalizada que permite ao usuário editar o xml com um modelador gráfico. O xml alterado é armazenado no valor de um campo oculto.

Quando o usuário clicar em Salvar rascunho ou Publicar , quero salvar esse valor como o conteúdo da publicação. Ao usar a ação save_post , o conteúdo é salvo, no entanto, eu é redirecionado para uma página inoperante com ERR_CONNECTION_RESET após um tempo de carregamento muito longo ao clicar em Salvar Rascunho .

Esta é a minha ação save_post :

 class MetaBoxes { . . public function saveModel($postId, $post, $update) { if (get_post($postId)->post_type != $this->post_type) { return; } if (array_key_exists(self::INPUT_ID, $_POST)) { wp_update_post([ 'ID' => $postId, 'post_content' => urldecode($_POST[self::INPUT_ID]) ]); } } . . } 

Eu sei que existem problemas de segurança no estado atual. Vamos ignorá-los até que a funcionalidade principal seja corrigida.

Desde já, obrigado!

Solutions Collecting From Web of "Metabox de conteúdo de posttype personalizado"

Eu acho que você pode estar em um loop recursivo. se você se save_post no save_post que será ativado novamente quando você ligar para wp_update_post.

Você pode remover temporariamente o gancho. Sem saber exatamente como você escreveu o gancho, o código abaixo é um palpite.

 remove_action( 'save_post', [ $this, 'saveModel'] ); wp_update_post([ 'ID' => $postId, 'post_content' => urldecode($_POST[self::INPUT_ID]) ]); add_action( 'save_post', [ $this, 'saveModel'] );