Klicken lädt die Vorlage über Ajax

Ich versuche eine Vorlage über Ajax zu laden, wenn der Benutzer auf eine Schaltfläche klickt. Dies ist der Code, den ich verwende:

Auf functions.php :

 function phantom_scripts() { global $child_dir; /* Ajax Requests */ wp_enqueue_script( 'ajax-stuff', get_stylesheet_directory_uri() . '/js/ajax.js', array( 'jquery' ), true ); } add_action( 'wp_enqueue_scripts', 'phantom_scripts' ); function portfolio_ajax() { include( 'templates/cards.php' ); die(); } add_action('wp_ajax_nopriv_portfolio_ajax', 'portfolio_ajax'); add_action('wp_ajax_portfolio_ajax', 'portfolio_ajax'); wp_localize_script( 'ajax-stuff', 'ajaxStuff', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); 

Auf ajax.js :

 (function($) { $('#load-cards').click(function() { alert(); $.ajax({ url: ajaxurl, data: { action: 'portfolio_ajax' }, success: function(data) { $('#cards-container').append(data); }, error: function(MLHttpRequest, textStatus, errorThrown){ alert(errorThrown); } }); }); })(jQuery); 

HTML :

 Load cards 

templates/cards.php zeigt die Konsole keinen Fehler an, lädt aber nicht den Inhalt, den ich in der Datei templates/cards.php . Irgendeine Idee, was ich vermisse?

Solutions Collecting From Web of "Klicken lädt die Vorlage über Ajax"

Also verwenden Sie wp_localize_script , um die wp_localize_script zu injizieren. Aber Sie haben das lokalisierte var-Handle nicht verwendet, um auf diesen Wert zuzugreifen. Versuche dies:

 /* ... */ $.ajax({ url: ajaxStuff.ajaxurl, // NOTE use of 'ajaxStuff' object /* ... */ 

Zuerst musst du tun, was Dougal gesagt hat, um die Ajax-URL richtig zu machen. Ich würde auch den dataType angeben. dataType ist der Datentyp, den Sie vom Server erwarten. Weitere Informationen dazu finden Sie hier.

Und ich würde WordPress get_template_part verwenden , um die Vorlage zu erhalten.