【问题标题】:Ajax call Not Working in Custom pluginAjax 调用在自定义插件中不起作用
【发布时间】:2017-11-23 11:49:05
【问题描述】:

我正在创建一个插件以在下拉列表中显示所有帖子类型,并创建另一个选择框以显示每种帖子类型的相应类别(分类法)。当帖子类型发生变化时,通过 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。这是为什么呢?

【问题讨论】:

    标签: javascript jquery ajax wordpress plugins


    【解决方案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);
                }
            });
    

    【讨论】:

      【解决方案2】:

      你不能在没有参数的情况下使用 plugin_dir_url。 请改用这种格式;

      plugin_dir_url(__FILE__).'cust-taxonomy/ajax_tax.php';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-01
        • 1970-01-01
        • 2011-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多