我是wordpress
的新用户,我需要调用ajax
来获取wordpress中下拉选项的json
对象。我无法调用同一目录中的php
文件,因此我使用<?php echo admin_url('custom-file.php'); ?>
并将php文件放在wp-admin中,我可以使用它获取结果但更新会在我更新时被删除wordpress
。我很困惑如何在与调用php
文件
AJAX call in wordpress template Ajax call add current url in wordpress
我找到了这两个链接,但没有理解它是如何工作的。任何帮助都会受到赞赏。
由于
答案 0 :(得分:3)
这是带有WordPress的自定义AJAX
的演示..
Bellow脚本是HTML
<div class="ajax-column">
<div class="options">
<select id="custom-change">
<option value="val1">Val 1</option>
<option value="val2">Val 2</option>
<option value="val3">Val 3</option>
<option value="val4">Val 4</option>
</select>
</div>
<div id="ajax_result_form">
<div id="ajax_text_result"></div>
<div class="row">
<div class="" id="ajax_result"> </div>
</div>
</div>
</div>
这是JS Script as my-ajax-script.js
jQuery(document).ready(function(e) {
jQuery('#custom-change').change(function(e) {
var text = jQuery('#custom-change').val();
jQuery.ajax({
type: "POST",
url: admin_url,
dataType:"json",
data: {
action: 'data_custom_ajax',
text: text,
},
cache: false,
success: function(data){
if(data['data_result']==''){
jQuery('#ajax_result').hide();
}
else{
jQuery('#ajax_result').css('display','block');
jQuery('#ajax_result').html(data['data_result']);
}
}
});
});
});
这是WordPress脚本作为主题的functions.php文件。
function my_enqueue() {
wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') );
wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );
/* Custom Ajax */
function data_custom_ajax(){
$custom_val = $_POST['text'];
$testdomin_query = new WP_Query($testdomin_args_search);
$testdomin_result='';
if(!empty($custom_val)){
$testdomin_result = _e('Your Action hear','textdomin');
}
else
$testdomin_result = _e('Not found','textdomin');
echo json_encode(array("data_result"=>$testdomin_result));
die;
}
add_action('wp_ajax_nopriv_data_custom_ajax', 'data_custom_ajax');
add_action('wp_ajax_data_custom_ajax', 'data_custom_ajax');