web-dev-qa-db-fra.com

Comment ajouter une publication de type post personnalisé dans un autre écran de modification de post post de type utilisant AJAX?

J'ai deux types de messages personnalisés: CD et Track. Chacune d'elles a des métadonnées associées.

Ce que j'essaie de faire est d’ajouter des publications de suivi à une publication de CD lorsque celle-ci est en cours d’édition. Sur la page d'édition du CD, j'ai le lien "Ajouter une piste". En cliquant dessus, je voudrais qu'un "nouveau formulaire de suivi" apparaisse sous le lien qui demandera une information de suivi (type de publication personnalisée), ainsi que toutes les métadonnées devant être spécifiées pour un suivi - comme si " Ajouter une piste "a été cliqué à partir du menu de gauche WP. J'espère que ça a du sens. CD

Les types de publication personnalisés Mon CD et Suivi sont enregistrés comme suit: http://wordpress.Pastebin.com/Y6aagTVs

Sur la page d'édition du CD, j'ai le lien suivant <a class="addTrack" href="">Add Track</a>

Il me manque AJAX et la fonction qui gérera l'ajout du "nouveau formulaire de suivi". Voici ce que j'ai jusqu'à présent dans la fonction AJAX:

// Add Tracks   
$("a.addTrack").click(function () {
    opts = {
        url: ajaxurl, // ajaxurl is defined by WordPress and points to /wp-admin/admin-ajax.php
        type: 'POST',
        async: true,
        cache: false,
        dataType: 'json',
        data:{
            action: 'track_add', // Tell WordPress how to handle this ajax request
        },
        success: function(response) {
            return false;
        },
        error: function(xhr,textStatus,e) {  // This can be expanded to provide more information
            alert("There was an error adding a track.");
            return false;
        }
    };
    $.ajax(opts);
});

Et la fonction qui gérera l’insertion du "Nouveau formulaire de piste" est

// Add Tracks
add_action('wp_ajax_track_add', 'my_ajax_admin_add_track');
function my_ajax_admin_add_track() {
}

Je ne sais pas comment parler des fonctions AJAX et my_ajax_admin_add_track (). J'apprécierais vraiment toute aide et conseils !!!

Merci beaucoup, Dasha

1
dashaluna

Pour votre fonction my_ajax_admin_add_track (), saisissez les données du champ de formulaire dans le tableau $ _POST, remplissez les données requises dans un tableau pour appeler wp_insert_post (), puis appelez wp_insert_post () en lui transmettant les données de publication. Il devrait renvoyer le nouveau numéro d'identification de poste s'il réussit.

1
Mark