How to manage ajax calls and JSON in wordpress

Ajax Handler It is indeed a bit confusing that the Ajax handler is in the wp-admin/ directory, but yes, you can and should use it for non-admin requests too. You then register a handler for the wp_ajax_nopriv_[action] hook, instead of the normal wp_ajax_[action]. In this case you only have to follow the first lines of … Read more

Why use admin-ajax.php and how does it work?

1) Why use admin-ajax.php instead of encoding your json in a separate file like themes/example/json.php and encode your data there? Using admin-ajax.php means that the WordPress Core is loaded and available. WIthout that, you would need to hand load the files you need, which is a complicated process and prone to failure if you don’t … Read more

Why use wp_send_json() over echo json_encode()?

wp_send_json() handles all parts of returning content in an AJAX call. First off, it sets the content type of the returned content to application/json with the proper charset. Secondly, it automatically calls wp_die() after sending the JSON result, which is necessary in an AJAX call in WordPress. You could consider using wp_send_json_success() for successful requests … Read more

Load minimum WordPress environment

Disabling plugins entirely means you loose many advantages. There are distributions of wordpress that go further and rip out posts and links etc, but they’ll always lag behind WordPress core and tend not to survive as long. Here are some things that could be done Short Init Putting this in your wp-config.php: define( ‘SHORTINIT’, TRUE … Read more

How to load wp_editor via AJAX

The main problem are the missing scripts. The scripts enqueued in _WP_Editors::enqueue_scripts() are never printed. The same is true for _WP_Editors::editor_js(). So you have to do that in your AJAX callback handler. I have written a demo plugin and put it on GitHub: T5 AJAX Editor. There is one class named Ajax_Editor. Its method render() … Read more

How does admin-ajax.php work?

admin-ajax.php is part of the WordPress AJAX API, and yes, it does handle requests from both backend and front. Try not to worry about the fact that it is in wp-admin. I think that is a strange place for it too, but it is not a security problem in itself. How this relates to “enumerate … Read more

How to load wp_editor() through AJAX/jQuery

To get the quicktags to show up, you need to re instantiate them within your ajax oncomplete handler. quicktags({id : ‘editorcontentid’}); My ajax success handler looks like this; success: function(data, textStatus, XMLHttpRequest){ //append editor to dom $(‘#container’).append($(data).html()); //init quicktags quicktags({id : ‘editorcontentid’}); //init tinymce tinymce.init(tinyMCEPreInit.mceInit[‘editorcontentid’]); } I’ve managed to get the editor to load by … Read more