Hãy tìm kiếm trước khi đặt câu hỏi, bạn sẽ tiết kiệm rất nhiều thời gian

Nhưng đừng ngại hỏi và đóng góp câu trả lời

Form để thêm Post vào một Custom Post

0 phiếu
level-1 đã hỏi 28 Tháng 7, 2015 bởi Khách

Tôi muốn hiển thị một Form trên blog của tôi mà sẽ cho phép bất cứ ai điền vào và nó sẽ tạo ra một Post trong một Custom Post. Tôi phải làm thế nào? 

 

Hỏi bạn bè:

2 Câu trả lời

0 phiếu
level-10 level-power đã trả lời 28 Tháng 7, 2015 bởi linhdd Chuyên gia (17,360 điểm)

Bạn có thể tham khảo cách sau

Code Form trên giao diện

<!-- New Post Form -->

<div id="postbox">

<form id="new_post" name="new_post" method="post" action="">

<!-- post name -->

<p><label for="title">Title</label><br />

<input type="text" id="title" value="" tabindex="1" size="20" name="title" />

</p>

<!-- post Category -->

<p><label for="Category">Category:</label><br />

<p><?php wp_dropdown_categories( 'show_option_none=Category&tab_index=4&taxonomy=category' ); ?></p>

<!-- post Content -->

<p><label for="description">Content</label><br />

<textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>

</p>

<!-- post tags -->

<p><label for="post_tags">Tags:</label>

<input type="text" value="" tabindex="5" size="16" name="post_tags" id="post_tags" /></p>

<p align="right"><input type="submit" value="Publish" tabindex="6" id="submit" name="submit" /></p>

<input type="hidden" name="action" value="new_post" />

<?php wp_nonce_field( 'new-post' ); ?>

</form>

</div>

Code xử lý Form

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

    // Do some minor form validation to make sure there is content

    if (isset ($_POST['title'])) {

        $title =  $_POST['title'];

    } else {

        echo 'Please enter a  title';

    }

    if (isset ($_POST['description'])) {

        $description = $_POST['description'];

    } else {

        echo 'Please enter the content';

    }

    $tags = $_POST['post_tags'];

    // Add the content of the form to $post as an array

    $new_post = array(

        'post_title'    => $title,

        'post_content'  => $description,

        'post_category' => array($_POST['cat']),  // Usable for custom taxonomies too

        'tags_input'    => array($tags),

        'post_status'   => 'publish',           // Choose: publish, preview, future, draft, etc.

        'post_type' => 'post_type_name'  //'post',page' or use a custom post type if you want to

    );

    //save the new post

    $pid = wp_insert_post($new_post);

    //insert taxonomies

}

 

 

0 phiếu
level-5 đã trả lời 28 Tháng 7, 2015 bởi Dương Tử Giang Có hiểu biết (3,190 điểm)
Trong action cuả form bạn sử dụng hàm wp_insert_post để tạo post nhé.
Trang web tham khảo: https://codex.wordpress.org/Function_Reference/wp_insert_post

Chuyên mục HOT

...