Tạo một metabox để tải lên nhiều hình ảnh


8

Có thể tạo một hộp meta gắn nhiều hình ảnh vào bài viết không?


Có một hướng dẫn đầy đủ để tải lên một số hình ảnh thêm các hộp meta vào bài đăng, trang hoặc loại bài đăng tùy chỉnh tại emenia.es/plugin-subir-imagenes-campo-personalizado-wordpress Đó là tiếng Tây Ban Nha, nhưng tôi có thể chạy nó mà không gặp vấn đề gì .

Câu trả lời:


7

Điều đó phụ thuộc hoàn toàn vào những gì bạn có nghĩa là "đính kèm."

Mỗi bài đăng WordPress có thể có nhiều tệp đính kèm phương tiện - ảnh, tài liệu, v.v. Bạn tải chúng lên bằng trình tải lên tích hợp và tất cả chúng sẽ được đánh dấu là "đính kèm" với ID bài đăng cụ thể đó.

Bạn có thể tham khảo những điều này sau đó lập trình ở nơi khác. Ví dụ: đoạn mã sau sẽ liệt kê tất cả các tệp đính kèm cho một bài đăng cụ thể (mã từ Snipplr ) :

$args = array(
    'post_type' => 'attachment',
    'numberposts' => null,
    'post_status' => null,
    'post_parent' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
    foreach ($attachments as $attachment) {
        echo apply_filters('the_title', $attachment->post_title);
        the_attachment_link($attachment->ID, false);
    }
}

Tất cả các chức năng này có thể truy cập thông qua nút "Thêm phương tiện" mặc định ở phía bên phải của "Tải lên / Chèn" trên màn hình bài đăng mới. Sau khi bạn thêm một hình ảnh, bạn có thể nhấp vào "Chọn tệp" một lần nữa và tải lên hình ảnh thứ hai. Rồi một phần ba. Sau đó, một thứ tư. Như nhiều như bạn muốn.

Mỗi hình ảnh này sẽ được "đính kèm" vào bài đăng ... ngay cả khi chúng không được chèn vào nội dung.


Vì một số lý do lạ, tôi chỉ có thể lấy mã đó để xuất tệp đính kèm đầu tiên trong mẫu, mặc dù phần còn lại được đính kèm. Có ý kiến ​​gì không? Đây là mã ... dl.dropbox.com/u/497583/code/wp-attactments.txt
agileapricot

Bạn cần sử dụng một số biến khác nhau. Bạn đang sử dụng cả hai $post$argstrong ít nhất hai bối cảnh khác nhau, điều này khiến cho việc tìm ra chính xác những gì bạn đang cố gắng thực hiện bất cứ lúc nào rất khó khăn. Nhưng tôi đã kiểm tra mã tôi đã đăng ở trên và nó hoạt động ...
EAMann

6

Dưới đây là một hướng dẫn đầy đủ với các tệp nguồn thực hiện chính xác những gì bạn muốn,
Bạn có thể tải lên nhiều hình ảnh bằng cách nhân bản trường nhập và bạn cũng có thể xem trước, xóa hình ảnh bằng ajax, thêm nhiều metaboxes vào nhiều loại bài đăng khác nhau và hơn thế nữa.

http://www.deluxeblogtips.com/2010/05/howto-meta-box-wordpress.html


Tôi thứ hai này. Nó hoạt động như một say mê.
Manny Fleurmond

Trong khi liên kết mà bạn cung cấp hiện đã chết, dự án trong tài liệu tham khảo đã biến thành một thư viện / plugin thân thiện với nhà phát triển. Xem: wordpress.org/plugins/meta-boxgithub.com/wpmetabox ... Trông giống như một sản phẩm tuyệt vời.
Kerry Randolph

2

Tôi cũng khuyên bạn nên kiểm tra http://www.wpalchemy.com . WPAlchemy là một "lớp" kick ass (gần một plugin) để dễ dàng thêm các hộp meta tùy chỉnh vào trang web của bạn. Tôi sử dụng nó rộng rãi và đã bị ấn tượng bởi sự dễ sử dụng và cam kết của nhà phát triển và cộng đồng đang phát triển.


0

Vâng, nó hoàn toàn có thể. Xem phản hồi tôi nhận được về metaboxes. Về cơ bản, bạn sẽ chỉ muốn thêm một hook cho save_postvà xác minh trường nonce.

function my_save_post_callback( $post_id, $post )
{
    if ( empty($_POST) || !isset($_POST['my_custom_metabox']) || !wp_verify_nonce( $_POST['my_custom_metabox'], plugin_basename( __FILE__ ) ) )
    {
        return $post->ID;
    }

    // Handle the upload here

}
add_action( 'save_post', 'my_save_post_callback', 1, 2);
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.