Wordpress 使用 Wordpress 将 ajax 值传递到特定页面

     2023-02-22     36

关键词:

【中文标题】Wordpress 使用 Wordpress 将 ajax 值传递到特定页面【英文标题】:Wordpress passing ajax value to a specific page using Wordpress 【发布时间】:2016-10-07 07:54:29 【问题描述】:

我想将变量传递给特定页面。我找到了一个简单的例子来解释如何在 wordpress 中使用 ajax。

JavaScript:

jQuery(document).ready(function($) 

// We'll pass this variable to the PHP function example_ajax_request
var fruit = 'Banana';

// This does the ajax request
$.ajax(
    url: ajaxurl,
    data: 
        'action':'example_ajax_request',
        'fruit' : fruit
    ,
    success:function(data) 
        // This outputs the result of the ajax request
        console.log(data);
    ,
    error: function(errorThrown)
        console.log(errorThrown);
    
);  

);

要插入functions.php的PHP片段

function example_ajax_request() 

// The $_REQUEST contains all the data sent via ajax
if ( isset($_REQUEST) ) 

    $fruit = $_REQUEST['fruit'];

    // Let's take the data that was sent and do something with it
    if ( $fruit == 'Banana' ) 
        $fruit = 'Apple';
    

    // Now we'll return it to the javascript function
    // Anything outputted will be returned in the response
    echo $fruit;

    // If you're debugging, it might be useful to see what was sent in the $_REQUEST
    // print_r($_REQUEST);



// Always die in functions echoing ajax content
  die();
 

add_action( 'wp_ajax_example_ajax_request', 'example_ajax_request' );


   wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' =>   admin_url( 'admin-ajax.php' ) ) );

不幸的是,我无法传递变量。我检查了代码,我得到了这个错误:

Error: ajax_object is not defined

您可能知道获得相同结果的另一种方法吗?

【问题讨论】:

wp_localize_script 期望有一个名为 ajax_object 的变量,所以您可以尝试对此发表评论并查看它是否有效,这样您就可以知道错误来自那里吗? 嗨,LoicTheAtzec 我不太明白你的例子。我可以请您使用 blockquote 写下您的建议吗? 【参考方案1】:

你已经很近了,但是少了一些小东西……

我在评论中的意思是,您需要在两者中都使用 'ajax-script' 以这种方式使用它:

add_action('wp_enqueue_scripts', 'add_js_scripts'); 
add_js_scripts()
    wp_enqueue_script( 'ajax-script', get_template_directory_uri().'/js/script.js', array('jquery'), '1.0', true );
    wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' =>   admin_url( 'admin-ajax.php' ) ) );

$_REQUEST 更改为 $_POST:

function example_ajax_request() 

    // The $_REQUEST contains all the data sent via ajax
    if ( isset($_POST) ) 

        $fruit = $_POST['fruit'];

        // Let's take the data that was sent and do something with it
        if ( $fruit == 'Banana' ) 
            $fruit = 'Apple';
        

        // Now we'll return it to the javascript function
        // Anything outputted will be returned in the response
        echo $fruit;

        // If you're debugging, it might be useful to see what was sent in the $_POST
        // print_r($_POST);

    

    // Always die in functions echoing ajax content
      die();

 

添加add_action( 'wp_ajax_nopriv_ … )

add_action( 'wp_ajax_nopriv_example_ajax_request', 'example_ajax_request' ); // <= this one
add_action( 'wp_ajax_example_ajax_request', 'example_ajax_request' );

对于您的 jQuery 脚本 script.js 文件,有 2 个重要的缺少的小东西:

jQuery(document).ready(function($) 

    /* We'll pass this variable to the PHP function example_ajax_request */
    var fruit = 'Banana';

    /* This does the ajax request */
    $.ajax(
        url: ajax_object.ajaxurl, /* <====== missing here */
        type : 'post', /*    <========== and missing here */
        data: 
            'action':'example_ajax_request',
            'fruit' : fruit
        ,
        success:function(data) 
            /* This outputs the result of the ajax request */
            console.log(data);
        ,
        error: function(errorThrown)
            console.log(errorThrown);
        
    );  

);

现在应该可以工作了……

参考资料:

Using AJAX With PHP on Your WordPress Site Without a Plugin

How to use Ajax with your WordPress Plugin or Theme?

【讨论】:

【参考方案2】:

您使用 wp_localize_script 错误。在 PHP 代码中,删除 wp_localize_script 行。

您可以(并且应该)添加以下内容

// this line is for users who are not logged in
add_action( 'wp_ajax_nopriv_example_ajax_request', 'example_ajax_request' );

【讨论】:

【参考方案3】:

一切都是正确的,除了你必须添加 ajax_object.ajax_url 而不是 url 中的 ajaxurl:$.ajax 函数的参数 as

jQuery(document).ready(function($) 

// We'll pass this variable to the PHP function example_ajax_request
var fruit = 'Banana';

// This does the ajax request
$.ajax(
    url: **ajax_object.ajax_url**,
    data: 
        'action':'example_ajax_request',
        'fruit' : fruit
    ,
    success:function(data) 
        // This outputs the result of the ajax request
        console.log(data);
    ,
    error: function(errorThrown)
        console.log(errorThrown);
    
);  

);

复制并粘贴上面的脚本来代替你的 $.ajax 函数 如果你想看看 ajax_object.ajax_url 是什么 在你的代码中提醒它,它会提醒你的管理 ajax 文件的路径 这是在 wordpress 中使用 ajax 所必需的

【讨论】:

使用 WordPress $wpdb 将数据插入到 WordPress 数据库中的表中

】使用WordPress$wpdb将数据插入到WordPress数据库中的表中【英文标题】:InsertingdataintoatableinWordPressdatabaseusingWordPress$wpdb【发布时间】:2012-06-2716:31:01【问题描述】:我正在开始插件开发,并按照WordPressCodex网站上的教程进行操作。... 查看详情

如何将 Access 数据库与 wordpress 一起使用? [关闭]

】如何将Access数据库与wordpress一起使用?[关闭]【英文标题】:HowcanuseanAccessdatabasewithwordpress?[closed]【发布时间】:2017-11-1811:07:09【问题描述】:我有一个wordpress网站,我有一个包含用户和用户文件的Access数据库。如何将该数据... 查看详情

使用 WordPress 将视频上传到 YouTube

】使用WordPress将视频上传到YouTube【英文标题】:UploadingvideostoYouTubeusingWordPress【发布时间】:2012-04-0701:44:35【问题描述】:我想允许我的网站访问者直接从我的WordPress网站前端将视频上传到我的YouTube频道。我尝试过使用PHPAPI,... 查看详情

使用ruijiscraper将文章导入wordpress

WordPress做为个人博客系统,小型企业网站被越来越多的用户使用。个人站长或企业网编在日常编辑中会转发一些精彩的内容到自己的站点。重复的复制黏贴操作往往会令人烦躁。RuiJiScraper注意到了这点,使用RuiJi Scraper的导入... 查看详情

Twig+ Wordpress - 如何将数组参数传递给函数?

】Twig+Wordpress-如何将数组参数传递给函数?【英文标题】:Twig+Wordpress-Howtopassarrayargumentstofunction?【发布时间】:2013-09-2718:17:59【问题描述】:我正在使用使用Twig模板系统开发的Wordpress主题。我对Twig一无所知,也没有时间学习它... 查看详情

使用 CSV Importer 插件将大型 CSV 导入 Wordpress

】使用CSVImporter插件将大型CSV导入Wordpress【英文标题】:ImportingalargeCSVintoWordpresswithCSVImporterplugin【发布时间】:2011-07-1419:38:09【问题描述】:我正在尝试使用CSVImporter插件将一个相当大的csv文件(90mb,255,000条记录)导入wordpress... 查看详情

如何使用 Next.js 将 Wordpress 配置为无头 CMS

】如何使用Next.js将Wordpress配置为无头CMS【英文标题】:HowtoconfigureWordpressasheadlessCMSwithNext.js【发布时间】:2021-10-0317:43:45【问题描述】:我在Xampp的htdocs文件夹中有一个WordPress应用程序,并在localhost:3000中运行了一个单独的Next.js... 查看详情

如何使用 JSON 用户 API 中的 POST 将密码值传递给 wordpress

】如何使用JSON用户API中的POST将密码值传递给wordpress【英文标题】:HowtopasspasswordvaluetowordpressusingPOSTinJSONUserAPI【发布时间】:2020-05-0601:33:28【问题描述】:我正在尝试使用ReactJS和WordPress创建一个注册页面。为了创建一个用户,... 查看详情

Wordpress:高级自定义字段:将字段导出和导入到新的 wordpress 安装

】Wordpress:高级自定义字段:将字段导出和导入到新的wordpress安装【英文标题】:Wordpress:AdvancedCustomFields:ExportingandImportingfieldstoanewwordpressinstall【发布时间】:2014-06-2316:18:15【问题描述】:我在临时wordpress安装中创建了两个自定... 查看详情

如何将 jQuery 正确加载到 WordPress 中

】如何将jQuery正确加载到WordPress中【英文标题】:HowtoloadjQueryintoWordPressproperly【发布时间】:2014-04-0916:50:04【问题描述】:我有一个WordPress网站,我想使用一个名为DataTables的jQuery插件。我一直在寻找将jQuery脚本和DataTables脚本加... 查看详情

将 Wordpress 用户导入 Firebase 身份验证

】将Wordpress用户导入Firebase身份验证【英文标题】:ImportingWordpressUsersintoFirebaseauthentication【发布时间】:2018-07-1019:39:08【问题描述】:我正在将我的Wordpress网站迁移到Firebase。我已成功将我的Wordpress用户导出为以下JSON格式(如the... 查看详情

使用 AJAX 将 Wordpress 帖子内容加载到 DIV

】使用AJAX将Wordpress帖子内容加载到DIV【英文标题】:LoadWordpresspostcontentintoDIVusingAJAX【发布时间】:2011-11-2311:26:24【问题描述】:几天前我发布了一个关于如何在我正在开发的自定义Wordpress模板中ScrolltoSinglePost的问题。简而言之... 查看详情

如何将字体安装到 Wordpress 网站?

】如何将字体安装到Wordpress网站?【英文标题】:HowdoyouinstallfontstoaWordpresssite?【发布时间】:2012-07-2812:16:04【问题描述】:我正在制作一个音乐博客,我希望能够在我的Wordpress网站上使用BebasNeueRegular。显然,考虑到goldenscissors... 查看详情

使用 html 表单将数据插入到 wordpress 表中

】使用html表单将数据插入到wordpress表中【英文标题】:Insertingdataintowordpresstableusingahtmlform【发布时间】:2018-10-3114:47:53【问题描述】:我尝试了几个小时来解决我认为是一个简单的问题,但仍然没有进一步......下面是我将3个字... 查看详情

将图像附加到 Wordpress XMLRPC 中的帖子

】将图像附加到WordpressXMLRPC中的帖子【英文标题】:AttachimagetopostinWordpressXMLRPC【发布时间】:2013-07-1708:39:57【问题描述】:我正在使用XMLRPC向Wordpress发帖。我在发布缩略图时遇到问题,在调试wordpress代码后,我发现我的问题是... 查看详情

您可以使用 phpmyadmin 将 wordpress 帖子放到外部站点吗?

】您可以使用phpmyadmin将wordpress帖子放到外部站点吗?【英文标题】:Canyouusephpmyadmintoputwordpresspoststoanexternalsite?【发布时间】:2017-03-0907:30:51【问题描述】:我知道这可能是个愚蠢的问题。我有一个用PHP构建的网站,我有一个部... 查看详情

WordPress 用户迁移到 Rails 设计

】WordPress用户迁移到Rails设计【英文标题】:Wordpressusersmigrationtorailsdevise【发布时间】:2015-05-0211:20:39【问题描述】:我正在将wordpress迁移到Rails。在我将使用设计的rails中,唯一的问题是现有的wordpress用户哈希密码。如果我将所... 查看详情

使用 WordPress 进行用户身份验证

】使用WordPress进行用户身份验证【英文标题】:UserAuthenticationwithWordPress【发布时间】:2014-02-0723:58:47【问题描述】:我对WordPress很陌生;我通常使用HTML、JQuery和PHP构建我的网站和Web应用程序。这个WordPress的东西让我陷入了困境... 查看详情