Sto cercando di creare un semplice form frontend per i post
Sto cercando di imparare e creare cose più avanzate con Wordpress. Il mio obiettivo è creare un codice/script/plugin che mi permetta di pubblicare post dal frontend.
Ho visto molti plugin, come il tema Templatic Classifieds che invia, gestisce e modifica post dal frontend, ma sono molto complessi con codice inutile per il mio scopo.
Vorrei avere una visione più chiara su come ottenere l'ID, come impostare un titolo, il contenuto e ovviamente i campi personalizzati.
Una volta superato questo passo, voglio studiarlo in relazione a user_meta.
Grazie per i vostri esempi, codici, idee, link!

Per pubblicare un articolo dal front-end puoi utilizzare la funzione wp_insert_post().
Quindi si tratta semplicemente di creare un modulo e processarlo
il modulo:
<!-- Modulo per il nuovo articolo -->
<div id="postbox">
<form id="new_post" name="new_post" method="post" action="">
<p><label for="title">Titolo</label><br />
<input type="text" id="title" value="" tabindex="1" size="20" name="title" />
</p>
<p><label for="description">Descrizione</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>
</p>
<p><?php wp_dropdown_categories( 'show_option_none=Categoria&tab_index=4&taxonomy=category' ); ?></p>
<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>
<!--// Modulo per il nuovo articolo -->
il processing:
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == "new_game_post") {
// Effettua una validazione minima del form per assicurarsi che ci siano contenuti
if (isset ($_POST['title'])) {
$title = $_POST['title'];
} else {
echo 'Inserisci un titolo per il gioco';
}
if (isset ($_POST['description'])) {
$description = $_POST['description'];
} else {
echo 'Inserisci il contenuto';
}
$tags = $_POST['post_tags'];
// Aggiunge il contenuto del form a $post come array
$new_post = array(
'post_title' => $title,
'post_content' => $description,
'tags_input' => array($tags),
'post_status' => 'publish', // Scegli: publish, preview, future, draft, etc.
'post_type' => $_POST['post_type'] // Usa un custom post type se necessario
);
//salva il nuovo articolo e restituisce il suo ID
$pid = wp_insert_post($new_post);
}
Bonus Una volta che hai l'ID dell'articolo ($pid nell'esempio sopra) puoi facilmente impostare termini e custom fields:
//inserisci tassonomie come categorie, tag o custom
wp_set_post_terms($pid,(array)($_POST['cat']),'category',true);
//inserisci custom fields
update_post_meta($pid,'meta_key_name',$_POST['meta_value']);
spero sia d'aiuto.

Mi è stato davvero utile, grazie! A cosa servono questi termini? Quindi nel form di elaborazione inserisco il codice "insert custom fields" con l'id/nome corretto nel form giusto?
E se volessi modificare un post dal frontend?

Fatto, http://wordpress.stackexchange.com/questions/17400/how-can-i-edit-a-post-from-the-frontend
