Cách thích hợp để thêm một nút vào menu trên cùng của thư viện phương tiện?


7

Tôi muốn thêm một nút đơn giản vào menu trên cùng của Thư viện phương tiện (giả sử, ở bên phải của danh sách thả xuống hành động / bộ lọc hàng loạt. Tôi đã tìm kiếm bộ mã WordPress để tìm cách này phù hợp và không tìm thấy gì hữu ích.

Vì vậy, trước khi tôi bắt đầu tấn công vấn đề này bằng Javascript, tôi muốn hỏi cộng đồng xem có cách thức API WordPress phù hợp để thực hiện việc này không - dọc theo dòng manage_media_columnsmanage_media_custom_column.

Cảm ơn mọi người!


1
Tôi đã dành một chút thời gian để tìm hiểu các tệp cốt lõi để tìm kiếm các hành động và bộ lọc không có giấy tờ mà bạn có thể mắc vào upload.php hoặc các lớp liên quan mà nó dựa vào, nhưng tôi không tìm thấy gì. Tôi nghĩ rằng câu trả lời sẽ là "JavaScript đi!" Lấy làm tiếc.
Scott Nelle

Câu trả lời:


1

Vì vậy, đây là cách duy nhất tôi tìm thấy cho đến nay và nó xấu , tuy nhiên WordPress không cung cấp phương tiện nào để sửa đổi điều này thông qua các bộ lọc mà tôi có thể tìm thấy trong lõi. Tôi trình bày, phương pháp "làm-qua-Javascript" đầy hacky:

add_action( 'load-upload.php', function(){
    $js = <<<JAVASCRIPT
jQuery(document).ready(function($){
    setTimeout(function() {
        $('.wp-filter .button:last' ).after($('<button class="button">Hi</button>'));
    }, 1000);
});
JAVASCRIPT;

    add_filter( 'admin_footer', function() use ($js) {
        echo "<script>{$js}</script>";
    });
});

Rõ ràng, bạn nên mê mẩn Javascript mà bạn muốn thay vì làm nó như tôi, nhưng đây là một bằng chứng về khái niệm. Nó sẽ thêm một nút vào cả thanh công cụ Media Library (chế độ xem danh sách và chế độ xem thư viện).

Lý do setTimeoutlà các thanh lọc thực sự tải sau khi tải trang, vì vậy chờ đợi trên tài liệu đã sẵn sàng là không đủ. Có lẽ có một nơi tốt hơn để kết nối điều này, nhưng đây sẽ là một khởi đầu tố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.