簡體   English   中英

WordPress在插件中調用javascript函數

[英]wordpress calling javascript function in plugin

我正在努力從wordpress插件中進行javascript調用。 我有一個具有不同功能的外部javascript文件,希望可以在需要時單獨調用它們。

在我的主插件文件中,我注冊並加入了javascript文件。

wp_register_script( 'pluginMain', plugins_url( '/js/pluginMain.js', __FILE__ ) ); wp_enqueue_script( 'pluginMain' );

我要在pluginMain.js文件中放置幾個​​不同的函數,並在需要時在網站的不同頁面上調用它們。 這個重定向功能就是一個例子。

function redirectToHome() {
alert( 'Something went wrong.  You are being redirected home.' );

window.location.replace("https://somemainpage.com");
}

我能弄清楚如何進行任何事情的唯一方法是將以下代碼添加到javascript文件中。 但是在文件排隊后,它可以隨時運行,因此無處不在。

jQuery (document).ready (function () {
redirectToHome();
});

我嘗試將jQuery(文檔)代碼添加到頁面的html中,並從javascript文件中刪除jQuery(文檔)代碼,但此后沒有任何反應。

echo '<p>Something has gone wrong.  You are being returned to the main page</p>';

    echo '<script type="text/javascript">
    <!--
    jQuery (document).ready (function () {
    redirectToHome();
    });
    //-->
    </script>';

我顯然是新來的,對於從這里去哪里很困惑。 我可以得到一些指導嗎? 謝謝。

如果只需要在某些情況下運行腳本,則可以執行以下操作:

wp_register_script( 'pluginMain', plugins_url( 
'/js/pluginMain.js', __FILE__ ) );

這將注冊,但在入隊之前不會加載腳本。 然后,您可以這樣做:

add_action('loadmyscripthereplz', 'somefunction');
function somefunction(){
   wp_enqueue_script('pluginMain');
}

然后,無論您要將腳本加載到何處,例如頁面模板,都可以執行以下操作:

do_action('loadmyscripthereplz');

這將使您可以將腳本調用實際放置在所需的任何位置。 另外,您也可以像完成操作一樣在功能文件中注冊腳本,然后使用is_front_page()之類的檢查或您需要的任何其他WP檢查有條件地調用wp_enqueue_script('script')。 這將允許您選擇腳本的加載位置和時間。

順便說一句,請確保在進行重定向時進行正確的檢查/驗證,因為這可能會帶來安全漏洞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM