2016-06-23 5 views
0

これらの私は、それがバックエンドで動作するプラグインでテーマを使用する機能がありますが、私は同じコードを過ぎてコピーしても、私はのonclickイベントでそれを使用wp_enqueue_scriptsなぜフロントエンドでwp-ajaxが0を返しますが、管理者は正しく動作しますか?

add_action('wp_ajax_my_action', 'my_action_callback'); 
add_action('wp_ajax_nopriv_my_action', 'my_action_callback'); 

function my_action_callback() { 
global $wpdb; 
$whatever = intval($_POST['whatever']); 
$whatever += 10; 
    echo $whatever; 
wp_die(); 
} 






function testajax(){ 
var data = { 
    'action': 'my_action', 
    'whatever': ajax_object.we_value  // We pass php values differently! 
}; 

jQuery.post(ajax_object.ajax_url, data, function(response) { 
    alert('Got this from the server: ' + response); 
}); 
}; 

とadmin_enqueue_scriptsを好む0フロントエンドではRESPONS

私は管理者のための

add_action('admin_enqueue_scripts', 'my_enqueue'); 

add_action('wp_enqueue_scripts', 'my_enqueue'); 
も使用しました フロントエンド用

add_action('wp_enqueue_scripts', 'my_enqueue'); 
function my_enqueue($hook) { 

wp_enqueue_script('ajax-script', get_stylesheet_directory_uri().'/my_query.js', array('jquery')); 


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

これは私がちょうどカスタムページに私のカスタムページにロードしたいが、それは使用されたとき、私は、その後のfunctions.phpでそれを使用する必要がありますロード用のカスタムページに負荷をいけないスクリプトですコメント内に問題があると言ったようにfunctions.phpにすべてのページが読み込まれます

+0

コードにはいくつかの欠落があります。 [** this related thread **](http://stackoverflow.com/a/37685212/3730754)または[** this one too **](http://stackoverflow.com/a/)をご覧ください。 373319380/3730754) – LoicTheAztec

+0

私はあなたの例で起こった同じことを使用しました – Kazem

+0

あなたの質問をすべてのコードで更新すると、何が間違っているかを簡単に確認できます...ありがとう – LoicTheAztec

答えて

0

あなたが呼び出しようとしているURLが管理者に存在しない可能性はありますか? ajax_object.ajax_urlの代わりにajaxurlを使用してください。

0

デフォルトでは、Ajax URLはフロントエンドで使用できません。ローカライズする必要があります:

wp_localize_script('my_enqueue', 'ajax_object', array('ajax_url' => admin_url('wp-ajax.php'))); 
関連する問題