如何在 Wordpress Elementor 脚本完全加载后运行我的脚本?

Posted

技术标签:

【中文标题】如何在 Wordpress Elementor 脚本完全加载后运行我的脚本?【英文标题】:How to run my script, After Wordpress Elementor scripts fully loaded? 【发布时间】:2020-07-28 19:53:54 【问题描述】:

我是 Wordpress 的新手,但我在 java 开发。我使用 OceanWPElementor 开发了一个小型 Wordpress 网站。在主页中,我需要显示我网站中的注册会员数量。

所以,在开发页面时,我使用了 ElementorCOUNTER WIDGET ,其中 STARTING NUMBER@987654323 @ENDING NUMBER5 。但实际上我需要调用 DB 以使用 ajax 获取注册成员的数量并将其显示在主页上。所以我决定在我的 DOM 完全加载后使用 jQuery 编写自己的自定义代码来进行 ajax 调用。

我在 functions.php

中编写了以下代码
function load_js_assets() 

    if( is_page( 26 ) ) 
        wp_enqueue_script( 'home-js', get_template_directory_uri() . '/ucws-js/home-js.js', array ( 'jquery' ), 1.1, true);
     


    add_action( 'wp_enqueue_scripts', 'load_js_assets' );

那么我的home-js.js会如下,

jQuery(document).ready(function( $ ) 

    alert("Default members : "+$("#registered-Members").text()); //alerts --> Default members : 1 // But expected Default members : 5
    getRegisteredMembers_UsingAjaxCall(); //ajax call to DB to get total number of registered members dynamically
);

我的期望:Elmetor 加载其所有 js 文件后,我需要调用或加载我的 jQuery(document).ready(function( $ )。请指导我,如果我走错了路。

注意:我欢迎所有满足我要求的建议。

【问题讨论】:

加载页面时能看到源码中的ajax代码吗? Ajax 一切正常...... 所以AJAX在源代码中显示,但它没有获取注册成员的数量? Ajax 和获取数据不会有问题...我从 dB 接收数据,我可以在警报框中看到值。但是由于 elementor COUNTER WIDGET 我无法显示......因为我认为 elementor counter 在我的脚本加载后运行一些脚本来显示动画......所以我需要优先考虑它。 【参考方案1】:

在你的 functions.php 主题中尝试这些钩子 https://code.elementor.com/js-hooks/

add_action( 'wp_footer', function() 
    if ( ! defined( 'ELEMENTOR_VERSION' ) ) 
        return;
    
    ?>
    <script>
        jQuery( function( $ ) 
            // jquery example
            console.log($('body'));
         );
    </script>
    <?php
 );

【讨论】:

以上是关于如何在 Wordpress Elementor 脚本完全加载后运行我的脚本?的主要内容,如果未能解决你的问题,请参考以下文章

下拉菜单不会出现在elementor Wordpress中[关闭]

WordPress:Elementor 插件正在按钮中添加 <br>

Elementor编辑器 2018年最流行的WordPress页面构建插件

在 WordPress 的 Elementor 产品中为产品标题设置背景颜色

在 wordpress elementor 页面中添加 css 和 js 文件的位置

WordPress中Elementor教程 每个元素都有示例