Domanda

Ho qualche problema con una cosa personalizzata che sto facendo.

Ho coinvolto un caricatore di immagini personalizzato in un metabox in un tipo di post personalizzato. Ora sto cercando di capire un modo che mi permetta di riordinare le immagini caricate. Ho scoperto che JQuery Sortable sarebbe un modo conveniente per l'utente di essere in grado di trascinare e rilasciare in cui dovrebbero apparire le immagini (nel frontend sto usando un cursore di immagini jQuery per mostrare le immagini e l'ordine delle immagini sono decisi dai dati di allegato "menu_order", quindi per quindi ho bisogno di una sorta di funzionalità che salva il menu_order che creo con il jQuery ordinabile.

Ora, questo è un esempio semplificato di ciò che ho:http://jsfiddle.net/ln4sa/

Insieme ad ogni allegato ho aggiunto campi di input nascosti con l'ID allegato e un campo che ospiterà la posizione corrente dell'allegato nell'ordine di menu.

L'ID dell'Allegato è facilmente recuperato con WP PHP di base ($ allegato-> ID). Tuttavia, non ho ancora trovato un modo semplice per popolare #att_order con il menu corretto. Quindi qui vorrei un aiuto/input se qualcuno sarebbe così gentile.

Per salvare le informazioni effettive sto usando l'AJAX per estrarre i valori dai campi di input:

add_action('save_post', 'save_attachment_position');
function save_attachment_position(){
    global $post;
    if ($post->post_type == 'work') { ?>
        <script type="text/javascript">
        //<![CDATA[
            jQuery.ajax({
                type: 'post',
                url: ajaxurl,
                data: {
                    action: 'order_attachment',
                    att_ID: jQuery(this).parents('.attachment').find('#att_id').val(),
                    att_order: jQuery(this).parents('.attachment').find('#att_order').val(),
                    _ajax_nonce: jQuery('#ordernonce').val(),
                    post_type: 'attachment'
                }
            });
        //]]>
    </script><?php 
    }
}

E quindi utilizzare wp_update_post per aggiornare i dati di allegato:

add_action('wp_ajax_order_attachment', 'order_attachment');
function order_attachment($post) {
    $attachmentdata = array();
    $attachmentdata['ID'] = $_POST['att_ID'];
    $attachmentdata['menu_order'] = $_POST['att_order'];
    wp_update_post($attachmentdata);    
}

Sono consapevole che ho bisogno di una sorta di loop qui, ma lo risolverò.

Qualche idea?

Grazie

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top