Meta Boxes no Formulário de Envio de Publicidade Front End

Como posso adicionar checkboxs de metadados ao formulário de envio de mensagens do front-end ? Semelhante à submissão de publicação na frente que cria novas postagens, as respostas do formulário devem ir diretamente para as meta checkboxs posteriores.

Meta Boxes Code Example para publicação de back-end para front-end

post_type; $temp_array = array(); $temp_array = maybe_unserialize(get_post_meta($post->ID,'mia_ev_settings',true)); $mia_ev_bday = isset( $temp_array['mia_ev_bday'] ) ? $temp_array['mia_ev_bday'] : ''; echo 'jQuery(document).ready(function(){jQuery("#mia_ev_bday").simpleDatepicker();});'; ?> 
<input type="text" class="small-text" value="" id="mia_ev_bday" name="mia_ev_bday" size="67" />
ex: 13 Jan, 2011
ID, "mia_ev_settings", $temp_array ); } function mia_bday_scripts(){ wp_register_script('datepicker', get_bloginfo('template_directory').'/js/date/datepicker.js', array('jquery')); wp_enqueue_script('datepicker'); } function mia_style_css(){ wp_register_style( 'datepicker', get_bloginfo('template_directory').'/js/date/datepicker.css'); wp_enqueue_style('datepicker'); } add_action('admin_print_scripts', 'mia_date_scripts'); add_action('admin_print_styles', 'mia_style_css'); ?>

O mia_ev_bday também deve ser preenchido pelos usuários no front-end.

EXEMPLO DE FORMULÁRIO no Front-end View Image

As informações adicionadas pelos usuários no formulário devem ser exibidas na publicação e aparecem na checkbox meta back-end nas checkboxs meta personalizadas.

Solutions Collecting From Web of "Meta Boxes no Formulário de Envio de Publicidade Front End"

Você pode criar um formulário que tenha uma ação do seu formulário que gerencia o script php. No script php, você pode verificar se o formulário foi enviado, e se houver uma ação, em caso afirmativo, crie variables ​​para os campos do formulário usando o $ _POST var. Em seguida, crie o $ post = array () para configurar a meta meta meta, e use o wp_insert_post ($ post); para inserir o post.

Aqui está um exemplo de um código de processamento de formulário que eu uso para o formulário de postagem de frente usado em http://WPHonors.com . Ele funciona para o tipo de postagem personalizado que eu criei para ele, que tinha um formulário básico configurado, com um campo post_type oculto com o tipo de publicação como o valor.

 if( $_POST['post_type'] == 'site' ) { $title = $_POST['title']; $desc = $_POST['description']; $siteurl = $_POST['siteurl']; $cat = array( $_POST['cat'] ); $tags = trim( $_POST['tags'] ); if(!isset($title)) { echo '
Title required.
'; } if(!isset($desc)) { echo '
Description required.
'; } if(!isset($siteurl)) { echo '
URL required.
'; } if($cat == -1) { echo '
Select a category.
'; } if(!isset($tags)) { echo '
Must use at least one tag.
'; } if (!current_user_can( 'publish_posts')) { $poststatus = 'draft'; } else { $poststatus = 'publish'; } //$insert = new TypeSites(); $post = array( 'post_title' => $title, 'post_content' => $desc, 'siteurl' => $siteurl, 'post_category' => $cat, 'tags_input' => $tags, 'post_status' => $poststatus, 'post_type' => 'site' ); wp_insert_post( $post ); }

Após o uso do seu código wp_insert_post:

 add_post_meta($post_id, 'name-of-custom-field', $customField, true); 

altere o ‘nome-de-custom-field’ e adicione um elemento de formulário $ customField para colocar os dados do seu formulário.

A melhor solução é puxar as meta checkboxs existentes para a sua página no front-end sem ter que recriá-las. Não é necessário fazer qualquer trabalho adicional, basta usar este código:

 // Load necessary admin files include( ABSPATH . 'wp-admin/includes/template.php' ); include( ABSPATH . 'wp-admin/includes/post.php' ); // Add meta boxes do_action('add_meta_boxes', $post_type, $post); do_action('add_meta_boxes_' . $post_type, $post); // Show Meta Boxes do_meta_boxes( $post_type, 'normal', $post ); do_meta_boxes( $post_type, 'advanced', $post ); do_meta_boxes( $post_type, 'side', $post ); 

Enquanto você tiver a sua outra configuração de variables ​​$ _POST e estiver usando wp_insert_post (), a ação ‘save_post’ é chamada e os dados em suas metaboxes serão salvos.