[wp-hackers] ajax to call function in theme
otto at ottodestruct.com
Fri Dec 11 17:27:05 UTC 2009
On Fri, Dec 11, 2009 at 10:46 AM, Davit Barbakadze <jayarjo at gmail.com> wrote:
> There's still some inconsistency. Tutorial says: "Note: In WP 2.8, if
> a user is not logged in ('wp_ajax_nopriv_my_action'), then GET
> requests are ignored (and return -1). This bug was fixed in WP 2.9."
> It probably means that for every wordpress with version less then 2.9
> wp_ajax_nopriv_my_action hook doesn't work, right for not logged in
No. It means that you can't use GET. So you have to use POST.
In 2.9, both GET and POST work.
> And then it goes again - next section: "Ajax on the
> Viewer-Facing Side ( WordPress 2.6 , 2.7, 2.8 )" and:
> 'my_action_callback');". At the same time Codex says that: "We need to
> send our request to a plugin PHP file. This should be the main plugin
> PHP file. In case you want it to be a separate PHP file, bare in mind
> that you won't be able to access the Wordpress global variables, e.g.
> $wpdb, since separate files have absolutely no visibility to any part
> of WordPress at all."
That is for WP versions prior to the nopriv actions being added. Which
happened back in March:
> I think having all that together, no new comer will be able to figure
> out howto write an ajax call for not logged-in users for WP version
> less then 2.9 (current stable release that is).
The nopriv actions are there in in 2.8 and up. So probably the codex
On Fri, Dec 11, 2009 at 10:57 AM, Michael Pretty
<mpretty at voceconnect.com> wrote:
> I had a similar discussion on trac
> (http://core.trac.wordpress.org/ticket/11062). I think before we work on
> updating the codex, we should come up with a recommended solution for
> handling ajax requests from the front end. The problem with always using
> admin-ajax is that some sites have the admin in a different domain and or
> have the admin htaccess protected. Not all users know how to make
> exceptions in the htaccess file to allow the ajax to work.
> Davit Barbakadze wrote:
Using an SSL admin won't make any difference.
Using an admin on a different domain might be a problem, but that's a
pretty custom setup to begin with. I don't think we need explicit
support for that type of configuration.
That said, you can always use the init or the template_redirect action
to do AJAX requests to the main blog URL instead of going through the
explicit admin-ajax code.
Sent from Memphis, TN, United States
More information about the wp-hackers