Tori Ajax

描述

Developers can now add Ajax by passing three parameters (name of action, PHP callback, and javascript path) to the toria_add_ajax() function using the Tori Ajax plugin.

Documentation

Please check out the Tori Ajax plugin Documentation

About

This is an easy-to-use dev tool for adding Ajax in word press.

屏幕截图

  • Sample theme functions PHP code
  • Sample Javascript code
  • Sample theme functions PHP code for authenticated and non-authenticated Ajax actions.
  • Sample theme functions PHP code for authenticated Ajax actions.
  • Sample theme functions PHP code for non-authenticated Ajax actions.

安装

  1. Upload tori-ajax folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Add custom code to add ajax in your theme functions or anywhere else desirable. For example:
 function my_simple_ajax() {
    // Magic happens here.
    echo json_encode( 'Welcome to Tori Ajax' );
}

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js'
    );
}
  1. Create a javascript file in the inc/my_custom_ajax/toria_ajax.js.
  2. Add Javascript code. For example:
function tori_ajax() {
    jQuery.ajax({
        type: "post",
        url: toria.ajax_url, // admin-ajax.php path,
        data: {
            action: toria.action, // action
            nonce: toria.nonce,   // pass the nonce here
        },
        success: function (data) {
            console.log(data.trim());
            //alert(data.trim());
        },
        error: function (errorThrown) {
            console.log(errorThrown);
        }
    });
}
tori_ajax();// call the function.

常见问题

How to solve toria_add_ajax() is undefined?

  • By ensuring the Tori Ajax plugin is installed.
  • Use the if statement to check if the toria_add_ajax() exists first before using it. For example:
    ~~~~
    if ( function_exists( ‘toria_add_ajax’ ) ) {
    toria_add_ajax(
    ‘simple’,
    ‘my_simple_ajax’,
    get_stylesheet_directory_uri() . ‘/inc/my_custom_ajax/toria_ajax.js’
    );
    }
    ~~~~

How to register action for both logged in and non logged in users?

You can use the fourth parameter to set the mode to ‘both’.
By default, the mode is set to ‘private’ for authenticated Ajax actions for logged-in users.
You can also use ‘public’ to expose the Ajax action to non-authenticated Ajax actions for logged-out users
Summary
both – For exposing the Ajax action to authenticated Ajax actions for logged-in users and non-authenticated Ajax actions for logged-out users.
Example

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js',
        'both'
    );
}

private – For exposing the Ajax action to authenticated Ajax actions for logged-in users.
Example

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js',
        'private'
    );
}

Or

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js'
    );
}

public – For exposing the Ajax action to non-authenticated Ajax actions for logged-out users.
Example

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js',
        'public'
    );
}

评价

此插件暂无评价。

贡献者及开发者

“Tori Ajax” 是开源软件。 以下人员对此插件做出了贡献。

贡献者

将“Tori Ajax”翻译成您的语言。

对开发感兴趣吗?

您可以浏览代码,查看SVN仓库,或通过RSS订阅开发日志

更新日志

1.0.0

  • The beginning of the Tori Ajax plugin.

1.0.1

  • Fixed: Uncaught ArgumentCountError during the nonce check.
  • Added JSON output for nonce messages.

1.0.2

  • Added 3 optional arguments to toria_add_ajax() function:

    1. $script_depends (string[]) (Optional) An array of registered script handles this script depends on. Default value: array().
    2. $script_version (string|bool|null) (Optional) String specifying script version number, if it has one, which is added to the URL as a query string for cache busting purposes. If the version is set to false, a version number is automatically added equal to the current installed Tori Ajax version. If set to null, no version is added. Default value: false.
    3. $script_in_footer (bool) (Optional) Whether to enqueue the script before instead of in the . Default ‘false’.
  • Added support for PHP version 5.6.20 and above

  • Added compatibility of WordPress Version 3.0 and above

1.0.3

  • Fixed: PHP Notice undefined variable: allowed_html

1.1.0

  • Compatible with WordPress 6.0.
  • Added filters:
    apply_filters( ‘toria/ajax/action’, $action );
    apply_filters( ‘toria/ajax/php_callback’, $php_callback, $action );
    apply_filters( ‘toria/ajax/script_path’, $script_path, $action, $php_callback );
    apply_filters( ‘toria/ajax/mode’, $mode, $action, $php_callback, $script_path );
    apply_filters( ‘toria/ajax/nonce’, $nonce, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/ajax_object’, $ajax_object, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/ajax_handle’, $ajax_handle, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/script_depends’, $script_depends, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/script_version’, $script_version, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/script_in_footer’, $script_in_footer, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/ajax_variables’, $ajax_variables, $action, $php_callback, $script_path, $mode );

1.2.0

*Added more parameters to some filters.
*The affected filters are:
apply_filters( ‘toria/ajax/ajax_object’, $ajax_object, $action, $php_callback, $script_path, $mode, $nonce );
apply_filters( ‘toria/ajax/ajax_handle’, $ajax_handle, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object );
apply_filters( ‘toria/ajax/script_depends’, $script_depends, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object, $ajax_handle );
apply_filters( ‘toria/ajax/script_version’, $script_version, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object, $ajax_handle, $script_depends );
apply_filters( ‘toria/ajax/script_in_footer’, $script_in_footer, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object, $ajax_handle, $script_depends, $script_version );
apply_filters( ‘toria/ajax/ajax_variables’, $ajax_variables, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object, $ajax_handle, $script_depends, $script_version, $script_in_footer );