我正在创建一个插件,用于在下拉列表中显示所有帖子类型,另一个选择框用于显示每种帖子类型的相应类别(分类法)。更改帖子类型后,通过ajax调用选择相应的类别。
这是我的代码:
add_action('admin_menu', 'taxonomy_menu');
function taxonomy_menu(){
add_menu_page( 'Taxonomy Plugin', 'Custom Taxonomy Plugin', 'manage_options', 'custom-taxonomy-plugin', 'tax_settings' );
}
function tax_settings(){
$url = plugin_dir_url().'cust-taxonomy/ajax_tax.php';
$taxo = get_taxonomies();
var_dump($url);
?>
<form method="POST" action="">
Post Type<select class="taxonomy">
<?php
foreach ( get_post_types() as $post_type ) {
?>
<option value="<?php echo $post_type;?>"><?php echo $post_type;?></option>
<?php } ?>
</select><br>
Categories<select>
<option value="">Select</option>
</select><br>
No: of posts<input type="text" name="num_posts"><br><span></span>
<input type="submit" name="submit" value="submit">
</form>
<?php
}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(".taxonomy").change(function(){
var post_type = this.value;
alert(post_type);
jQuery.ajax({
type:'POST',
url:"<?php echo plugin_dir_url().'cust-taxonomy/ajax_tax.php';?>",
data: post:post_type,
success:function(result){
alert(result);
}
});
});
});
</script>
此处没有AJAX调用进入相应的URL。那是为什么?
答案 0 :(得分:1)
我可以看到调用jQuery.ajax()时出现语法错误。您传递的参数不是正确的java脚本对象。你需要用花括号括起 post:post_type ,如下所示。
jQuery.ajax({
type:'POST',
url:"<?php echo plugin_dir_url().'cust-taxonomy/ajax_tax.php';?>",
data: {post:post_type},
success:function(result){
alert(result);
}
});
答案 1 :(得分:0)
你不能在没有参数的情况下使用plugin_dir_url。 请改用此格式;
plugin_dir_url(__FILE__).'cust-taxonomy/ajax_tax.php';