Question

J'ai des problèmes avec une chose personnalisée que je fais.

J'ai mis en œuvre un téléchargeur d'image personnalisé dans un métabox dans un type de message personnalisé. Maintenant, j'essaie de trouver une manière qui me permettra de réorganiser les images téléchargées. J'ai trouvé que JQuery Sorable serait un moyen pratique pour l'utilisateur de pouvoir faire glisser et tomber dans lequel l'ordre devrait apparaître (dans le frontend, j'utilise un curseur d'image jQuery pour montrer les images et l'ordre des images sont décidés par les données de pièce jointe "menu_order", donc j'ai besoin d'une sorte de fonctionnalité qui enregistre le menu_order que je crée avec le sortable jQuery.

Maintenant, c'est un exemple simplifié de ce que j'ai:http://jsfiddle.net/ln4sa/

Avec chaque pièce jointe, j'ai ajouté des champs d'entrée cachés avec l'ID de pièce jointe et un champ qui abritera la position actuelle de la pièce jointe dans l'ordre du menu.

L'ID de la pièce jointe est facilement récupéré avec WP PHP de base ($ attachement-> ID). Cependant, je n'ai pas encore trouvé de moyen facile de remplir le #Att_Order avec le bon menu_order. Alors ici, je voudrais de l'aide / entrée si quelqu'un était si gentil.

Pour enregistrer les informations réelles, j'utilise AJAX pour extraire les valeurs des champs d'entrée:

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 
    }
}

Puis utilisez wp_update_post pour mettre à jour les données de pièce jointe:

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);    
}

Je suis conscient que j'ai besoin d'une sorte de boucle ici, mais je vais y travailler.

Des idées?

Merci

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top