Membuat halaman submit article pada Wordpress

Wordpress identik dengan sebuah blog yang bisa diubah-ubah menjadi apa saja layaknya sebuah robot transformer (mungkin), dia mampu beradaptasi dengan keinginan penggunanya agar bisa dikustomisasi bahkan situs wordpress bisa terlihat seperti situs portal yang tidak menggunakan Wordpress jika hanya dilihat dari interfacenya saja.

Nah jika kalian ingin membuat sebuah portal yang menggunakan konsep User Generated Content pada Wordpress, maka kalian bisa menggunakan cara ini untuk membuat halaman submit article pada Wordpress.

Namun kita berbicara tentang User Generated Content terlebih dahulu, User Generated Content adalah sebuah situs blog, forum, gallery gambar atau lain sebagainya yang kontennya berasal dari pengguna, pengunjung ataupun siapa saja yang dapat memiliki akses untuk membuat konten.

User Generated Content biasanya dapat kita temui di forum diskusi yang contohnya diantara lain adalah Kaskus, blog juga ada yang seperti itu namun sangat jarang kita temui meskipun itu memang sudah terjadi jauh - jauh hari sebelum Kolombaru lahir.

Keuntungan dari User Generated Content ini banyak dari kebebasan pengunjung untuk membuat artikel di situs yang kita miliki yang berarti konten pada website kita semakin banyak, dapat mendatangkan pengunjung dari mesin pencari, dan lain sebagainya.

Untuk masalah kerugian memang biaya setelah kita mendapatkan manfaatnya sangat besar, namun saya menjamin ini kerugiannya tidak akan sebanding dengan keuntungannya.

Back to topic, Untuk menjalankan konsep User Generated Content kita mungkin harus berpikir bagaimana caranya agar pengunjung, anggota, ataupun siapa saja bisa berkontribusi dalam website kita tanpa harus login lagi ke dalam halaman backend Wordpress.

Disini saya menyebutkannya adalah halaman submit article namun kalau untuk detailnya kalian bisa mencarinya dengan keyword "Front-End Posting Wordpress" namun pada akhirnya semua artikel tersebut disubmit atau dikirim dan jadi judul ini mungkin bisa dianggap cocok dari yang lain.

Persiapan :

Ada beberapa persiapan yang harus dilakukan sebelum menuju proses pembuatan diantaranya :

  1. Satu file dengan nama prefix template-******.php
    • Contoh : template-posting.php
  2. Satu halaman kosong dengan judul bebas

Buka file dengan nama prefix template-*****.php

Jika kalian sudah membuat file dengan nama prefix template-*****.php maka kalian akan membuat rancangan code sebagai tempat peletakan form posting :

Untuk halaman submit article yang hanya bisa diakses oleh anggota

<?php
/**
 * Template Name: submit post pages
**/
get_header(); ?>
    

/* Jika User Sedang Login /* Jika user tidak sedang login

Untuk halaman submit article yang bisa diakses oleh siapa saja

    

Masukkan code untuk mengaktifkan proses

Masukkan code ini tepat dibawah agar saat user ingin mengirim artikel maka artikel yang dikirim dapat terlihat pada halaman backend wordpress atau lebih tepatnya pada halaman daftar artikel.

   $postTitle,
            'post_content'  =>   $postContent,
            'post_category' =>   $_POST['cat'],//array($_POST['cat']), // if specific category, then set it's id like: array(4),  
            'tags_input'    =>   array($postTags),
            'post_status'   =>   'pending',         
            'post_type' =>   'post'  
            );
            
            $post_id = wp_insert_post($new_post);
  
            wp_set_post_tags($post_id, $_POST['postTags']);
            
            $link = home_url( '/' );
            echo "

Terima Kasih Artikel anda telah dikirim

Artikel yang telah dikirim akan direview oleh tim kami dan akan dipublish dalam waktu 3 x 24 jam, sekarang anda akan dialihkan ke halaman utama

"; exit; } } ?>

Kode yang dapat dimodifikasi :

  1. post_category' =>   $_POST['cat']
    • Kalian dapat menentukan kategori apa yang dipilih saat pengguna mengirimkan artikelnya dengan menggunakan Kategori ID.
  2. 'post_status'   =>   'pending',
    • Kalian dapat menentukan apakah posting yang dikirim harus memasuki proses review atau tidak, jika kalian ingin posting yang dikirim masuk proses review maka gunakan nilai 'pending' namun jika tidak atau langsung terpublish maka gunakan nilai 'publish'
  3. 'post_type' =>   'post'
    • Kalian dapat mengganti post_type dengan beberapa pilihan yang tersedia pada template wordpress yang kalian gunakan.

Masukkan form HTML

Untuk agar proses berjalan maka form HTML digunakan untuk menampilkan form input, jika tidak diberikan maka proses input tidak bisa berjalan kalan form input tidak terlihat.

       

Silahkan isi form dibawah untuk mengirim artikel

Sebelum mengisi form pengiriman artikel perlu diketahui bahwa setiap artikel yang dikirim memerlukan proses moderasi dari tim Kolombaru, setelah proses moderasi dilewati artikel akan dipublish tergantung dari penulisan artikel itu sendiri. setelah itu anda harus membaca persyaratan sebelum menulis artikel lalu anda diperbolehkan untuk mengirim artikel

<?php } ?> <?php if ( $postContentError != '' ) { ?> <span class="error"><?php echo $postContentError; ?></span>
<?php } ?> </div> <br/> <!-- post name -->
Title
" placeholder="Masukkan judul artikel">
</div> <br/> <!-- post Content -->
Contents
</div> <!-- post Category -->

Catatan : Form ini bisa diubah - ubah tergantung dari selera kalian dalam mengubahnya, namun value type dan name pada form input karena dapat mengubah hasil dan mungkin saja gagal untuk melakukan proses.

Atur halaman kosong tadi dengan menggunakan template yang telah dibuat.

Nah jika kalian sudah selesai maka kalian dapat menggunakan template yang tadi dibuat pada halaman kosong yang sudah diberikan judul (baca bagian persiapan), untuk kurang lebihnya screenshotnya mirip seperti ini :

Screenshot from 2015-08-25 12:12:23

Untuk kode keseluruhan kurang lebih seperti ini :

<?php
/**
 * Template Name: submit post pages
**/
get_header(); ?>
<?php
    $postTitleError = '';
    $postContentError = '';
    
    if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) &&  $_POST['action'] == "frontnewPost") {
        
        if ( trim( $_POST['postTitle'] ) === '' ) {
            $postTitleError = 'Please enter a title.';
            $hasError = true;
        }
        if ( trim( $_POST['postContent'] ) === '' ) {
            $postContentError = 'Please enter the post content.';
            $hasError = true;
        }
        
        if (isset ($_POST['postTitle'])) {
            $postTitle =  $_POST['postTitle'];
        }
        
        if (isset ($_POST['postContent'])) {
            $postContent = $_POST['postContent'];
        } 
        
        if ( isset($_POST['postTitle']) && isset($_POST['postContent']) && ( $hasError==false )) {
            $postTags = trim($_POST['postTags']);
            global $wpdb;
            
            $new_post = array(
            'post_title'    =>   $postTitle,
            'post_content'  =>   $postContent,
            'post_category' =>   $_POST['cat'],//array($_POST['cat']), // if specific category, then set it's id like: array(4),  
            'tags_input'    =>   array($postTags),
            'post_status'   =>   'pending',         
            'post_type' =>   'post'  
            );
            
            $post_id = wp_insert_post($new_post);
  
            wp_set_post_tags($post_id, $_POST['postTags']);
            
            $link = home_url( '/' );
            echo "<h3 class='heading'>Terima Kasih Artikel anda telah dikirim</h3>
            <p>Artikel yang telah dikirim akan direview oleh tim kami dan akan dipublish dalam waktu 3 x 24 jam, sekarang anda akan dialihkan ke halaman utama</p>
            <meta http-equiv='refresh' content='2;url=$link' />"; exit;
            
        }
        
            
        }

?>
    

Silahkan isi form dibawah untuk mengirim artikel

Sebelum mengisi form pengiriman artikel perlu diketahui bahwa setiap artikel yang dikirim memerlukan proses moderasi dari tim Kolombaru, setelah proses moderasi dilewati artikel akan dipublish tergantung dari penulisan artikel itu sendiri. setelah itu anda harus membaca persyaratan sebelum menulis artikel lalu anda diperbolehkan untuk mengirim artikel

<?php } ?> <?php if ( $postContentError != '' ) { ?> <span class="error"><?php echo $postContentError; ?></span>
<?php } ?> </div> <br/> <!-- post name -->
Title
" placeholder="Masukkan judul artikel">
</div> <br/> <!-- post Content -->
Contents
</div> <!-- post Category -->

Bagaimana apakah artikel ini dapat membantu kalian dalam membuat User Generated Content ?.