Modulo per Aggiungere Articoli a un Custom Post Type

6 mar 2011, 10:58:03
Visualizzazioni: 32.1K
Voti: 9

In pratica, voglio visualizzare un modulo sul mio blog (su una determinata pagina) che permetterà a chiunque di compilarlo e creerà un post in un custom post type.

Ho visto la risposta una volta prima ma ora non riesco a trovarla.

2
Commenti

So che probabilmente vorresti costruirlo da solo, ma recentemente ho iniziato a lavorare con un plugin chiamato Formidable che fa questo molto bene. C'è una versione gratuita, potresti volerla provare. http://wordpress.org/extend/plugins/formidable/

Dalton Rooney Dalton Rooney
24 gen 2012 22:13:11

Ho provato Formidable. Ma la versione gratuita ha delle limitazioni. Campi come data, ora, campi nascosti ecc. sono bloccati.

Eugine Joseph Eugine Joseph
29 gen 2017 13:27:00
Tutte le risposte alla domanda 2
13
13

Pubblicare dal front-end consiste nel mostrare un modulo e processarlo:

modulo:

<!-- Modulo Nuovo Articolo -->
<div id="postbox">
<form id="new_post" name="new_post" method="post" action="">

<!-- titolo articolo -->
<p><label for="title">Titolo</label><br />
<input type="text" id="title" value="" tabindex="1" size="20" name="title" />
</p>

<!-- Categoria articolo -->
<p><label for="Category">Categoria:</label><br />
<p><?php wp_dropdown_categories( 'show_option_none=Categoria&tab_index=4&taxonomy=category' ); ?></p>


<!-- Contenuto articolo -->
<p><label for="description">Contenuto</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>
</p>

<!-- tag articolo -->
<p><label for="post_tags">Tag:</label>
<input type="text" value="" tabindex="5" size="16" name="post_tags" id="post_tags" /></p>
<p align="right"><input type="submit" value="Pubblica" tabindex="6" id="submit" name="submit" /></p>

<input type="hidden" name="action" value="new_post" />
<?php wp_nonce_field( 'new-post' ); ?>
</form>
</div>

elaborazione:

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

    // Effettua una validazione di base per verificare la presenza di contenuti
    if (isset ($_POST['title'])) {
        $title =  $_POST['title'];
    } else {
        echo 'Inserisci un titolo';
    }
    if (isset ($_POST['description'])) {
        $description = $_POST['description'];
    } else {
        echo 'Inserisci il contenuto';
    }
    $tags = $_POST['post_tags'];

    // Aggiungi il contenuto del modulo a $post come array
    $new_post = array(
        'post_title'    => $title,
        'post_content'  => $description,
        'post_category' => array($_POST['cat']),  // Utilizzabile anche per tassonomie personalizzate
        'tags_input'    => array($tags),
        'post_status'   => 'publish',           // Scegli: publish, preview, future, draft, ecc.
        'post_type' => 'post_type_name'  //'post',page' o usa un custom post type se necessario
    );
    //salva il nuovo articolo
    $pid = wp_insert_post($new_post); 
    //inserisci tassonomie
}
6 mar 2011 11:23:57
Commenti

@Bainternet - Grazie, ora c'è un modo per fare in modo che il form reindirizzi al nuovo post dopo l'invio?

Jared Jared
6 mar 2011 12:45:02

sì wp_redirect(get_permalink($pid)); exit;

Bainternet Bainternet
6 mar 2011 12:55:21

@Bainternet - Grazie ancora, ma quando inserisco questo dopo la funzione wp_insert_post, ricevo un errore che dice non è possibile modificare gli header. Dove devo inserirlo?

Jared Jared
6 mar 2011 22:37:44

wp_insert_post non modifica alcun header né emette alcun output, il che mi porta a pensare che ci sia qualcosa che viene visualizzato nel tuo codice, incolla il codice esatto che stai usando così potrò dare un'occhiata più approfondita

Bainternet Bainternet
6 mar 2011 23:37:21

@Bainternet - http://pastebin.com/jTzryzAs

Jared Jared
7 mar 2011 05:11:19

Ecco come dovresti strutturare il codice: http://pastebin.com/SRi2ZxWa

ariefbayu ariefbayu
9 mar 2011 00:56:17

@Jared silent ha ragione, la parte di elaborazione deve venire prima del modulo

Bainternet Bainternet
9 mar 2011 01:07:52

Mmm... sono un po' curioso. Ho provato ogni variazione possibile di un modulo di post che ho trovato. Incluso questo. Non riesco a far funzionare la parte di validazione......

Rev. Voodoo Rev. Voodoo
25 mar 2011 21:29:09

come aggiungere i campi post_meta a questo modulo?

Mohannad Qamara Mohannad Qamara
19 gen 2012 15:45:18

@MohannadQamara puoi utilizzare il seguente codice dopo $pid = wp_insert_post($new_post);-- if( $pid ) { add_post_meta( $pid, 'post_meta_name', 'post meta value' ); }

Jared Jared
19 gen 2012 16:43:18

@Bainternet e per quanto riguarda l'applicazione di termini a una tassonomia specifica per il custom post type?

Anagio Anagio
16 dic 2012 10:43:29

@Anagio considera di porre una nuova domanda facendo riferimento a questa.

Bainternet Bainternet
16 dic 2012 13:26:00

@Bainternet lo farò domani una volta che potrò pubblicare del codice di esempio per dimostrare che ho provato qualcosa. Ho trovato alcuni tutorial. Se non avrò fortuna, pubblicherò.

Anagio Anagio
16 dic 2012 13:29:11
Mostra i restanti 8 commenti
1

Potrebbe essere più semplice utilizzare un plugin per fare questo.

Potresti anche usare l'eccellente plugin Contact Form 7 insieme all'estensione Post My CF7 Form, che ti permetterà di salvare qualsiasi modulo personalizzato in un custom post, inclusi immagini come allegati in evidenza, campi meta personalizzati e input di tipo select/checkbox/radio come tassonomie.

Il plugin Post My CF7 Form offre una ricca funzionalità che può essere sfruttata per personalizzare ulteriormente e modificare il modo in cui i tuoi moduli dovrebbero essere salvati. C'è anche una sezione documentazione dettagliata.

17 ott 2016 11:35:46
Commenti

dovresti menzionare che sei il creatore del plugin.

David Guida David Guida
22 giu 2023 04:54:54