Adicione itens de tipo de postagem customizados do frontend

2

Estou tentando descobrir como fazer meu site wordpress para poder adicionar portfolio itens do frontend. Plugins como o WP-User-Frontend permitem postar a partir do frontend, mas só funciona com posts no blog.

Existe alguma forma ou plug-in semelhante ao wp-user-frotend, mas é possível adicionar itens de tipo de postagem personalizados?

    
por Sze Chuan 03.11.2012 / 05:41

2 respostas

9

Se você estiver disposto a pagar por isso, o plug-in Gravity Forms permite criar formulários que mapeiam para seus Tipos de Postagens Personalizadas (até mesmo tipos regulares de postagens e páginas), assim como mapear para seus campos personalizados.

Para aqueles que não são e que estão dispostos a arregaçar as mangas, você pode criar um formulário de front-end que publique dados em qualquer tipo de postagem de sua escolha com bastante facilidade.

Aqui está um exemplo básico;

if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == "my_post_type") {

//store our post vars into variables for later use
//now would be a good time to run some basic error checking/validation
//to ensure that data for these values have been set
$title     = $_POST['title'];
$content   = $_POST['content'];
$post_type = 'my_custom_post';
$custom_field_1 = $_POST['custom_1'];
$custom_field_2 = $_POST['custom_2'];    

//the array of arguements to be inserted with wp_insert_post
$new_post = array(
'post_title'    => $title,
'post_content'  => $content,
'post_status'   => 'publish',          
'post_type'     => $post_type 
);

//insert the the post into database by passing $new_post to wp_insert_post
//store our post ID in a variable $pid
$pid = wp_insert_post($new_post);

//we now use $pid (post id) to help add out post meta data
add_post_meta($pid, 'meta_key', $custom_field_1, true);
add_post_meta($pid, 'meta_key', $custom_field_2, true);

}

Seu formulário HTML seria semelhante a:

<form method="post" name="front_end" action="" >
<input type="text" name="title" value="My Post Title" />
<input type="text" name="content" value="My Post Content" />
<input type="text" name="custom_1" value="Custom Field 1 Content" />
<input type="text" name="custom_2" value="Custom Field 2 Content" />
<button type="button">Submit</button>
<input type="hidden" name="action" value="my_post_type" />
</form>

Você pode colocar tudo isso em seu arquivo de modelo de tema. Normalmente, eu daria um passo adiante e executaria a lógica de processamento (PHP) de uma função dentro de minhas functions.php conectada a uma ação, entretanto, ela também funcionaria dentro de um arquivo de tema.

Isso se destina apenas a ser um exemplo básico e seu vazio de qualquer verificação e validação de grave . No entanto, isso fornece a estrutura essencial para o que você precisa publicar no front-end em seus tipos de postagem no back-end.

Existem também numerosos tutoriais que expandem o assunto no WPSE, se você executar uma pesquisa, encontrará muitas informações.

    
por userabuser 03.11.2012 / 07:23
0
<?php 

if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == "front_post") {

//store our post vars into variables for later use
//now would be a good time to run some basic error checking/validation
//to ensure that data for these values have been set
$title     = $_POST['title'];
$content   = $_POST['content'];
$tags   = $_POST['tag'];
$custom_field = $_POST['custom_1']; 
$post_type = 'frontpost';


//the array of arguements to be inserted with wp_insert_post
$new_post = array(
'post_title'    => $title,
'post_content'  => $content,
'tags_input'  => $tags,
'post_status'   => 'publish',
'post_category' => array('0',$_POST['cat']),          
'post_type'     => $post_type 
);

//insert the the post into database by passing $new_post to wp_insert_post
//store our post ID in a variable $pid
//we now use $pid (post id) to help add out post meta data
 $pid=wp_insert_post($new_post);

//we now use $pid (post id) to help add out post meta data
add_post_meta($pid, 'cust_key', $custom_field);


}
?>

    <div class="front-form col-sm-6">
        <form method="post" name="front_end" action="" >
            <input type="text" name="title" placeholder="FrontPost Title" required />
             <textarea  name="content" placeholder="FrontPost Content" rows="5" ></textarea>
            <input type="text" name="tag" placeholder="FrontPost tags" />
            <input type="text" name="custom_1" placeholder="Custom Field  Content" />


            <span><?php wp_dropdown_categories( 'tab_index=10&taxonomy=category&hide_empty=0' ); ?></span>
            <button type="submit">Submit</button>
            <input type="hidden" name="action" value="front_post" />
        </form>
    </div>

tente isso vai te ajudar ..! Aakib:)

    
por Aakib 04.01.2017 / 11:22