在unctions.php中未使用此代码添加JS文件

时间:2014-09-15 作者:Ali Nouman

对不起,我是WordPress的noob。我在函数中使用以下代码。php添加。wordpress中的js文件。

function your_function_name()
{

   wp_localize_script( \'function\', \'my_ajax_script\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) );
     wp_enqueue_script( \'function\', get_template_directory_uri().\'/my_js_stuff.js\', \'jquery\', true);

}
add_action(\'template_redirect\', \'your_function_ name\');

$dirName = dirname(__FILE__);
$baseName = basename(realpath($dirName));
require_once ("$dirName/MyFunctions.php");

add_action("wp_ajax_nopriv_get_my_option", "get_my_option");
add_action("wp_ajax_get_my_option", "get_my_option");
我用的是214主题。

1 个回复
最合适的回答,由SO网友:bestprogrammerintheworld 整理而成

使用ajax时让我困惑的一件事是die()necessary 在ajax回调函数的末尾。

另一个问题是,如果使用get_template_directory_uri() 使用子主题,然后获得parents文件夹。

如果您使用get_bloginfo(\'stylesheet_directory\') 你给我们一个儿童主题,然后你得到当前正在使用的儿童主题,我相信这在大多数情况下都是正确的。

这里是我试图展示的一个例子,我希望能帮助你。。。

把这个放进去(最好是儿童主题)functions.php

function jquery_stuff() {
    wp_enqueue_script(\'jquery\');
    wp_enqueue_script(\'scriptX\', get_bloginfo(\'stylesheet_directory\') . \'/jsfile.js\');    
}
add_action( \'init\', \'jquery_stuff\');

//tells WP that this an function used for ajax
add_action(\'wp_ajax_coolContent\', \'coolContent\'); 

//Used for returning cool content
function coolContent() { 
   $msg = \'cool content\';

   //Return content
   echo json_encode($msg);
   die();
}
jQuery (jsfile.js)

var coolContent = $.ajax({            
    type: \'POST\',
    data:{
        action: \'coolContent\',        //This is the function that should be called on serverside    
    },
    url: \'/wp-admin/admin-ajax.php\', //tells WP that it is ajax
    dataType: \'json\'
});

coolContent.done(function(data) {  
    alert(data); //Should alert text "cool content"
});                        

coolContent.fail(function(ts) {           
    alert(ts.responseText);
});

结束