✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Dodawanie niestandardowego przycisku obrazu za pomocą programu Media Uploader w WordPress

57

Ostatnio pracowałem nad wtyczką, w której chcieliśmy użyć domyślnego narzędzia do przesyłania multimediów WordPressa dla naszych wymagań. Mieliśmy niestandardowy przycisk obrazu i chcieliśmy przesłać obraz za pomocą programu do przesyłania multimediów. WordPress pięknie zbudował narzędzie do przesyłania multimediów, które pozwala użytkownikowi przesłać nowy obraz lub użyć istniejącego obrazu z biblioteki multimediów.

Zawsze zaleca się korzystanie z wbudowanego programu do przesyłania multimediów, jeśli szukasz niestandardowego rozwiązania do przesyłania obrazu do zaplecza. W ten sposób postępujesz zgodnie ze standardami WordPress. Zaimplementowanie programu do przesyłania multimediów zajmuje tylko kilka linijek kodu. Więc bez dalszej dyskusji zacznijmy od tego.

W tym samouczku dodam niestandardowy przycisk obrazu dla posta i strony. Po kliknięciu tego przycisku otworzy się narzędzie do przesyłania multimediów, w którym użytkownik może przesłać obraz. Przesłany adres URL obrazu jest ustawiony w niestandardowym polu meta i zostanie zapisany jako meta posta dla konkretnego posta lub strony.

Dodaj niestandardowy Meta Box w WordPress

Meta box to nic innego jak blok na poście lub na stronie. Kategorie, tagi, wyróżniony obraz, fragment, dyskusja itp. są przykładami metaboksów. Korzystając z pola Meta, możesz dodać dodatkowe informacje do postu i strony.

Potrzebujemy meta pola, które zawiera przycisk przesyłania obrazu i pole tekstowe. Gdy użytkownik kliknie przycisk, prześle obraz, a końcowy adres URL obrazu zostanie ustawiony w polu tekstowym.

Dodanie metaboxa jest łatwe i proste. Napisz poniższy kod w functions.phppliku lub we wtyczce.

function aw_custom_meta_boxes( $post_type, $post) {     add_meta_box(         'aw-meta-box',         __( 'Custom Image' ),         'render_aw_meta_box',         array('post', 'page'), //post types here         'normal',         'high'     ); } add_action( 'add_meta_boxes', 'aw_custom_meta_boxes', 10, 2 );   function render_aw_meta_box($post) {     $image = get_post_meta($post->ID, 'aw_custom_image', true);     ?>     <table>         <tr>             <td><a href="#" class="aw_upload_image_button button button-secondary"><?php _e('Upload Image'); ?></a></td>             <td><input type="text" name="aw_custom_image" id="aw_custom_image" value="<?php echo $image; ?>" style="width:500px;" /></td>         </tr>     </table>     <?php }

Po dodaniu powyższego kodu przejdź do swojego postu lub strony i powinieneś zobaczyć dodane nowe metabox wraz z ich polami.

Dodawanie niestandardowego przycisku obrazu za pomocą programu Media Uploader w WordPress

Dostosuj program do przesyłania multimediów WordPress

Jesteś teraz gotowy ze swoim meta boxem. Następną rzeczą jest kliknięcie przycisku „Prześlij obraz", otwórz narzędzie do przesyłania multimediów i ustaw adres URL przesłanego obrazu w polu tekstowym. Więc najpierw musisz utworzyć plik js i umieścić go w kolejce w środowisku WordPress.

Utwórzmy plik js awscript.jsi umieśćmy go w kolejce w następujący sposób:

function aw_include_script() {       if (! did_action( 'wp_enqueue_media')) {         wp_enqueue_media();     }        wp_enqueue_script( 'awscript', get_stylesheet_directory_uri(). '/js/awscript.js', array('jquery'), null, false ); } add_action( 'admin_enqueue_scripts', 'aw_include_script' );

Tutaj podałem ścieżkę motywu, zakładając, że dodajesz cały kod w motywie. Jeśli robisz to za pomocą wtyczki, musisz dostosować ścieżkę zgodnie z wtyczką.

Aby wykonać to zadanie, wziąłem referencję do Javascript Reference/wp.media i napisałem kod jQuery. W awscript.jsnapiszemy kod do przesyłania mediów w następujący sposób.

jQuery(function($){     $('body').on('click', '.aw_upload_image_button', function(e){         e.preventDefault();            var button = $(this),         aw_uploader = wp.media({             title: 'Custom image',             library: {                 uploadedTo: wp.media.view.settings.post.id,                 type: 'image'             },             button: {                 text: 'Use this image'             },             multiple: false         }).on('select', function() {             var attachment = aw_uploader.state().get('selection').first().toJSON();             $('#aw_custom_image').val(attachment.url);         })         .open();     }); });

Teraz idź dalej i kliknij przycisk „Prześlij obraz”, otworzy się narzędzie do przesyłania multimediów, wybierz / prześlij obraz i powinieneś zobaczyć adres URL obrazu dodany w polu tekstowym. Na koniec zamierzam zapisać ten adres URL w tabeli „postmeta” z kluczem „aw_custom_image”. Kluczowi można oczywiście nadać dowolną nazwę.

function aw_save_postdata($post_id) {     if (array_key_exists('aw_custom_image', $_POST)) {         update_post_meta(             $post_id,             'aw_custom_image',             $_POST['aw_custom_image']         );     } } add_action('save_post', 'aw_save_postdata');

Save_post to akcja uruchamiana za każdym razem, gdy tworzony lub aktualizowany jest post lub strona. Za pomocą tej akcji możesz wstrzyknąć swój kod do systemu. Możesz przeczytać więcej o tym haczyku w dokumentacji WordPressa.

Mam nadzieję, że dowiedziałeś się o dodaniu niestandardowego narzędzia do przesyłania multimediów w WordPress. Wypróbuj go w swojej wtyczce lub motywie i daj mi znać swoje przemyślenia w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów