Lập trình xuất bản một bài đăng (loại bài tùy chỉnh) với các trường tùy chỉnh


17

Tôi có loại bài đăng tùy chỉnh 'Người tham gia' với nhiều trường tùy chỉnh. Tôi cũng có một biểu mẫu với các trường đầu vào tương ứng để người dùng điền vào. Khi anh ấy gửi biểu mẫu, tôi muốn tạo một bài đăng mới với mỗi trường tùy chỉnh chứa giá trị do người dùng chọn.

Có thể làm và nếu vậy, làm thế nào?

Câu trả lời:


29

Sử dụng wp_insert_post ()add_post_meta () , như thế này:

// insert the post and set the category
$post_id = wp_insert_post(array (
    'post_type' => 'your_post_type',
    'post_title' => $your_title,
    'post_content' => $your_content,
    'post_status' => 'publish',
    'comment_status' => 'closed',   // if you prefer
    'ping_status' => 'closed',      // if you prefer
));

if ($post_id) {
    // insert post meta
    add_post_meta($post_id, '_your_custom_1', $custom1);
    add_post_meta($post_id, '_your_custom_2', $custom2);
    add_post_meta($post_id, '_your_custom_3', $custom3);
}

Hoạt động như sự quyến rũ ngay cả trên WordPress 4.4.2 :)!
jave.web

ngày nay, bạn có thể chỉ cần thêm các tệp meta thông qua khóa meta_input trong wp_insert_post:'meta_input' => ['_your_custom_1' => $custom1, '_your_custom_2' => custom2]
Andreas

Điểm hay @Andreas, tôi khuyên bạn nên thêm câu đó như một câu trả lời mới và để nó bắt đầu nhận được phiếu bầu. Nó sẽ là câu trả lời ngay bây giờ.
web biết

Thx @webkn :)
Andreas

Hoạt động như sự quyến rũ ngay cả trên WordPress 5.1 :)!
Tôi là người ngu ngốc nhất

6

Ngoài câu trả lời tuyệt vời của @webkn ở trên, điều này có thể được xử lý kể từ wordpress 4.4.0 tất cả thông qua cuộc gọi wp_insert_post :

$post_id = wp_insert_post(array (
    'post_content' => $content,
    'post_title' => $title,
    'post_type' => 'your_custom_post_type',
    'post_status' => 'publish',

    // some simple key / value array
    'meta_input' => array(
        'your_custom_key1' => 'your_custom_value1',
        'your_custom_key2' => 'your_custom_value2'
        // and so on ;)
    )
));

if ($post_id) {
    // it worked :)
}

4

Điều này có thể đạt được khá dễ dàng bằng cách sử dụng plugin Gravity Forms . Bạn có thể xây dựng một biểu mẫu cư trú Loại bài đăng tùy chỉnh trong phần phụ trợ. Bài đăng này có thể được thiết lập để xuất hiện dưới dạng bản nháp hoặc được xuất bản. Không có vấn đề khi thêm các trường tùy chỉnh. Trong trường hợp của tôi, tôi đã sử dụng nó để thu thập lời chứng thực của khách hàng.


Tôi thích giải pháp này, đặc biệt nếu bạn đang cung cấp nó cho khách hàng muốn tự quản lý biểu mẫu.
web biết
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.