Suporte » Questões avançadas » Custom Post Types não salva os Campos Personalizados

  • Olá

    Criei um Custom Post Type com Campos Extra Personalizados mas quando adiciono informações nestes campos, o WordPress salva os dados temporáriamente!

    Isso mesmo, temporáriamente, eu clico em Ver Post abaixo do título e os dados aparecem normal no single, mas basta que se passe alguns segundos, atualizo a página, e some tudo, quando vou editar o Post, tudo que adicionei, desapareceu!

    O mais estranho é que as informações ficam armazenadas por alguns segundos e depois desaparecem!

    Verifiquei o Banco de Dados e o WordPress não grava as informações que desaparecem!

    Podem me ajudar?

    Não sei se a criação do CPT está totalmente correta na parte de campos extras personalizados!

    Vejam o Código:

    //Registrando o custom post type "Parceiros"
    	add_action('init', 'parceiros_register');
    	function parceiros_register() {
    		$labels2 = array(
    			'name' => __('Parceiros'),
    			'singular_name' => __('Parceiro'),
    			'add_new' => __('Novo Parceiro'),
    			'add_new_item' => __('Adicionar novo Parceiro'),
    			'edit' => __('Editar'),
    			'edit_item' => __('Editar Parceiro'),
    			'new_item' => __('Novo Parceiro'),
    			'view' => __('Ver'),
    			'view_item' => __('Ver Parceiro'),
    			'search_items' => __('Buscar Parceiro'),
    			'not_found' =>  __('Nenhum Parceiro encontrado'),
    			'not_found_in_trash' => __('Nada encontrado na Lixeira'),
    			'parent' => __( 'Parente Parceiro' )
    		);
    		$args2 = array(
    			'labels' => $labels2,
    			'public' => true,
    			'publicly_queryable' => true,
    			'exclude_from_search' => false,
    			'show_ui' => true,
    			'query_var' => true,
    			'rewrite' => array( 'slug' => 'parceiros', 'with_front' => false ),
    			'can_export' => true,
    			'hierarchical' => true,
    			'menu_position' => 5,
    			'supports' => array('title', 'editor', 'thumbnail', 'comments', 'custom-fields')
    		);
    		register_post_type( 'parceiros' , $args2 );
    		flush_rewrite_rules();
    	}
    
    	//Registrando o Taxonomia para "Parceiros"
    	$labels2 = array(
    	    'name' => __( 'Tipos' ),
    	    'singular_name' => __( 'Tipo' ),
    	    'search_items' =>  __( 'Buscar' ),
    	    'popular_items' => __( 'Mais usados' ),
    	    'all_items' => __( 'Todos os Tipos' ),
    	    'parent_item' => null,
    	    'parent_item_colon' => null,
    	    'edit_item' => __( 'Editar Tipo' ),
    	    'update_item' => __( 'Atualizar' ),
    	    'add_new_item' => __( 'Adicionar novo Tipo' ),
    	    'new_item_name' => __( 'Novo' )
    	);
    	register_taxonomy('tipo', 'parceiros', array(
    			'hierarchical' => true,
    			'labels' => $labels2,
    			'singular_label' => 'Tipo',
    			'all_items' => 'Todos os Tipos',
    			'query_var' => true,
    			'rewrite' => true
    			)
    		);
    
    	//Registrando os campos a mais personalizados // contato   localização   site
    	add_action("admin_init", "parceiros_meta_box");
    	function parceiros_meta_box(){
    		//add_meta_box( $id, $title, $callback, $page, $context, $priority );
    		add_meta_box("campo_parceiro_nome_proprietario", "Nome do Proprietário", "parceiro_proprietario", "parceiros", "side", "low");
    		add_meta_box("campo_parceiro_email", "Email de Contato", "parceiro_email", "parceiros", "side", "low");
    		add_meta_box("campo_parceiro_msn", "MSN", "parceiro_msn", "parceiros", "side", "low");
    		add_meta_box("campo_parceiro_skype", "Skype", "parceiro_skype",	"parceiros", "side", "low");
    		add_meta_box("campo_parceiro_endereco", "Localização", "parceiro_endereco",	"parceiros", "side", "low");
    		add_meta_box("campo_parceiro_site", "Website", "parceiro_website", "parceiros", "side", "low");
    		add_meta_box("campo_parceiro_telefone", "Telefone", "parceiro_telefone", "parceiros", "side", "low");
    		add_meta_box("campo_parceiro_programacoes", "Programações", "parceiro_programacao", "parceiros", "normal", "low");
    	}
    
    	function parceiro_proprietario(){
    		global $post;
    		$custom = get_post_custom($post->ID);
    		$parceiro_proprietario = $custom["parceiro_proprietario"][0];
    		?>
    		<input style="border:1px solid #CCC; width:240px; padding:5px" name="parceiro_proprietario" value="<?php echo $parceiro_proprietario; ?>" />
    		<?php
    	}
    
    	function parceiro_email(){
    		global $post;
    		$custom = get_post_custom($post->ID);
    		$parceiro_email = $custom["parceiro_email"][0];
    		?>
    		<input style="border:1px solid #CCC; width:240px; padding:5px" name="parceiro_email" value="<?php echo $parceiro_email; ?>" />
    		<?php
    	}
    
    	function parceiro_msn(){
    		global $post;
    		$custom = get_post_custom($post->ID);
    		$parceiro_msn = $custom["parceiro_msn"][0];
    		?>
    		<input style="border:1px solid #CCC; width:240px; padding:5px" name="parceiro_msn" value="<?php echo $parceiro_msn; ?>" />
    		<?php
    	}
    
    	function parceiro_skype(){
    		global $post;
    		$custom = get_post_custom($post->ID);
    		$parceiro_skype = $custom["parceiro_skype"][0];
    		?>
    		<input style="border:1px solid #CCC; width:240px; padding:5px" name="parceiro_skype" value="<?php echo $parceiro_skype; ?>" />
    		<?php
    	}
    
    	function parceiro_endereco(){
    		global $post;
    		$custom = get_post_custom($post->ID);
    		$parceiro_endereco = $custom["parceiro_endereco"][0];
    		?>
    		<input style="border:1px solid #CCC; width:240px; padding:5px" name="parceiro_endereco" value="<?php echo $parceiro_endereco; ?>" />
    		<?php
    	}
    
    	function parceiro_website(){
    		global $post;
    		$custom = get_post_custom($post->ID);
    		$parceiro_website = $custom["parceiro_website"][0];
    		?>
    		<input style="border:1px solid #CCC; width:240px; padding:5px" name="parceiro_website" value="<?php echo $parceiro_website; ?>" />
    		<?php
    	}
    
    	function parceiro_telefone(){
    		global $post;
    		$custom = get_post_custom($post->ID);
    		$parceiro_telefone = $custom["parceiro_telefone"][0];
    		?>
    		<input style="border:1px solid #CCC; width:240px; padding:5px" name="parceiro_telefone" value="<?php echo $parceiro_telefone; ?>" />
    		<?php
    	}
    
    	function parceiro_programacao() {
    		global $post;
    		$custom = get_post_custom($post->ID);
    		$parceiro_programacao1 = $custom["parceiro_programacao1"][0];
    		$parceiro_programacao2 = $custom["parceiro_programacao2"][0];
    		$parceiro_programacao3 = $custom["parceiro_programacao3"][0];
    		$parceiro_programacao4 = $custom["parceiro_programacao4"][0];
    		$parceiro_programacao5 = $custom["parceiro_programacao5"][0];
    		$parceiro_programacao6 = $custom["parceiro_programacao6"][0];
    		$parceiro_programacao7 = $custom["parceiro_programacao7"][0];
    		$parceiro_programacao8 = $custom["parceiro_programacao8"][0];
    		$parceiro_programacao9 = $custom["parceiro_programacao9"][0];
    		$parceiro_programacao10 = $custom["parceiro_programacao10"][0];
    		?>
    		<p><label>Programação 1:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao1"><?php echo $parceiro_programacao1; ?></textarea></p>
    		<p><label>Programação 2:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao2"><?php echo $parceiro_programacao2; ?></textarea></p>
    		<p><label>Programação 3:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao3"><?php echo $parceiro_programacao3; ?></textarea></p>
    		<p><label>Programação 4:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao4"><?php echo $parceiro_programacao4; ?></textarea></p>
    		<p><label>Programação 5:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao5"><?php echo $parceiro_programacao5; ?></textarea></p>
    		<p><label>Programação 6:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao6"><?php echo $parceiro_programacao6; ?></textarea></p>
    		<p><label>Programação 7:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao7"><?php echo $parceiro_programacao7; ?></textarea></p>
    		<p><label>Programação 8:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao8"><?php echo $parceiro_programacao8; ?></textarea></p>
    		<p><label>Programação 9:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao9"><?php echo $parceiro_programacao9; ?></textarea></p>
    		<p><label>Programação 10:</label><br /><textarea cols="80" rows="5" name="parceiro_programacao10"><?php echo $parceiro_programacao10; ?></textarea></p>
    		<?php
    	}
    
    	add_action('save_post', 'save_details');
    	function save_details(){
    		global $post;
    		update_post_meta($post->ID, "parceiro_proprietario", $_POST["parceiro_proprietario"]);
    		update_post_meta($post->ID, "parceiro_email", $_POST["parceiro_email"]);
    		update_post_meta($post->ID, "parceiro_msn", $_POST["parceiro_msn"]);
    		update_post_meta($post->ID, "parceiro_skype", $_POST["parceiro_skype"]);
    		update_post_meta($post->ID, "parceiro_endereco", $_POST["parceiro_endereco"]);
    		update_post_meta($post->ID, "parceiro_website", $_POST["parceiro_website"]);
    		update_post_meta($post->ID, "parceiro_telefone", $_POST["parceiro_telefone"]);
    
    		update_post_meta($post->ID, "parceiro_programacao1", $_POST["parceiro_programacao1"]);
    		update_post_meta($post->ID, "parceiro_programacao2", $_POST["parceiro_programacao2"]);
    		update_post_meta($post->ID, "parceiro_programacao3", $_POST["parceiro_programacao3"]);
    		update_post_meta($post->ID, "parceiro_programacao4", $_POST["parceiro_programacao4"]);
    		update_post_meta($post->ID, "parceiro_programacao5", $_POST["parceiro_programacao5"]);
    		update_post_meta($post->ID, "parceiro_programacao6", $_POST["parceiro_programacao6"]);
    		update_post_meta($post->ID, "parceiro_programacao7", $_POST["parceiro_programacao7"]);
    		update_post_meta($post->ID, "parceiro_programacao8", $_POST["parceiro_programacao8"]);
    		update_post_meta($post->ID, "parceiro_programacao9", $_POST["parceiro_programacao9"]);
    		update_post_meta($post->ID, "parceiro_programacao10", $_POST["parceiro_programacao10"]);
    	}
    	//FIM

    Obrigado!

A visualizar 1 resposta (de um total de 1)
  • Estás a usar o update_post_meta, UPDATE, logo se não existe key ele não altera.
    Terás de ter certeza que a meta existe, se nao existir terás de usar o add_post_meta

A visualizar 1 resposta (de um total de 1)
  • O tópico ‘Custom Post Types não salva os Campos Personalizados’ está fechado a novas respostas.