Skip to main content

Creare un post dal frontend di WordPress senza plug-in!

Se desideri aggiungere un nuovo post senza accedere alla dashboard di WordPress o consentire ai tuoi visitatori di inviare i propri contenuti, puoi farlo tramite l’invio di post front-end.

3 minuti di lettura

È necessario seguire i passaggi essenziali di seguito per creare un modulo per i post inviati dagli utenti.

Passaggio 1. Crea un modulo tramite il quale un utente può inviare il titolo del post, il contenuto, i tag, la categoria, l’immagine in primo piano. Puoi inserire questo codice nel tuo tema functions.php o in qualsiasi altro file.

 <?php
 add_shortcode( 'designcare_frontend_post', 'designcare_frontend_post' );
    function designcare_frontend_post() {
        designcare_post_if_submitted(); ?>
        <form id="new_post" name="new_post" method="post" enctype="multipart/form-data">
            <p><label for="title"><?php echo esc_html__('Title','designcare'); ?></label><br />
                <input type="text" id="title" value="" tabindex="1" size="20" name="title" />
            </p>
            <?php wp_editor( '', 'content' ); ?>
            <p><?php wp_dropdown_categories( 'show_option_none=Category&tab_index=4&taxonomy=category' ); ?></p>
            <p><label for="post_tags"><?php echo esc_html__('Tags','designcare'); ?></label>
            <input type="text" value="" tabindex="5" size="16" name="post_tags" id="post_tags" /></p>
            <input type="file" name="post_image" id="post_image" aria-required="true">
            <p><input type="submit" value="Publish" tabindex="6" id="submit" name="submit" /></p>
        
        </form>
    <?php
    } ?>

Passaggio 2. Catturare l’input dal modulo di invio del post dell’utente front-end. Puoi anche inserire questo codice nel tuo tema functions.php o in qualsiasi altro file.

<?php 
function designcare_post_if_submitted() {
    // Stop running function if form wasn't submitted
    if ( !isset($_POST['title']) ) {
        return;
    }
    // Add the content of the form to $post as an array
    $post = array(
        'post_title'    => $_POST['title'],
        'post_content'  => $_POST['content'],
        'post_category' => array($_POST['cat']), 
        'tags_input'    => $_POST['post_tags'],
        'post_status'   => 'draft',   // Could be: publish
        'post_type' 	=> 'post' // Could be: 'page' or your CPT
    );
	$post_id = wp_insert_post($post);
	
	// For Featured Image
	if( !function_exists('wp_generate_attachment_metadata')){
		require_once(ABSPATH . "wp-admin" . '/includes/image.php');
		require_once(ABSPATH . "wp-admin" . '/includes/file.php');
		require_once(ABSPATH . "wp-admin" . '/includes/media.php');
	}
	if($_FILES) {
		foreach( $_FILES as $file => $array ) {
			if($_FILES[$file]['error'] !== UPLOAD_ERR_OK){
				return "upload error : " . $_FILES[$file]['error'];
			}
			$attach_id = media_handle_upload( $file, $post_id );
		}
	}
	if($attach_id > 0) {
		update_post_meta( $post_id,'_thumbnail_id', $attach_id );
	}
    echo 'Saved your post successfully! :)';
} ?>

Passaggio 3. Incolla lo shortcode del modulo in cui desideri visualizzare il modulo.

<?php echo do_shortcode('[ designcare_frontend_post ]'); ?>

Penso che questo sistema ti sarà utile e ti farà risparmiare molto tempo!
Felice codifica. Grazie!

Hai trovato interessante l'articolo? Condividilo!
Ancora nessun commento, vuoi essere il primo?

Your Email address will not be published.

Articoli correlati

Ottieni informazioni preziose e fai crescere la tua attività più velocemente con i nostri video, tutorial e ricerche.

Come personalizzare l’area login di WordPress

La domanda che spesso si trova nella posta del support, tra le domande di chi acquista un hosting e vuole iniziare a fare blogging: come personalizzare la pagina login di WordPress?

Cosa sono i custom post type e come crearli

Per ottenere le funzionalità di base di un tipo di post personalizzato funzionante, non abbiamo quasi alcun codice da inserire. Prima di iniziare, hai almeno bisogno di alcune cose: un nome, due etichette e definire se il tuo tipo di post sarà pubblico.

Come posso mostrare un elenco di custom post type?

I tipi di post personalizzati non hanno regole rigide che definiscono cosa sono. Possono rappresentare qualsiasi tipo di contenuto desideri. Utilizzeremo il ciclo standard di WordPress per listare i CPT e lo personalizzeremo come vogliamo.