WordPress API函数无法在AJAX函数.php调用中工作



我正试图使用AJAX在WordPress中显示类别的子类别:当我选择一个主类别时,会调用WP AJAX,结果用于显示子类别。

到目前为止,我已经有了在不调用WP函数时有效的客户端代码(此代码在主题页中):

jQuery('#cat-location-main').change(function () {
    var optionSelected = jQuery(this).find('option:selected');
    var valueSelected = optionSelected.val();
    var textSelected = optionSelected.text();
    console.log(valueSelected);
    jQuery.ajax({
      type: 'POST',
      url: ajaxurl,
      data: {
            action: 'myajax-get-subcat',
            category: valueSelected,
            // send the nonce along with the request
            categoryNonce: '<?php echo wp_create_nonce( 'myajax-get-subcat-nonce' );?>'
      },
      success: function(data, textStatus, jjqXHR) {
          console.log(data);
      },
      dataType: 'json'
    });
 });

我在函数中有这个。hp:

add_action('wp_ajax_myajax-get-subcat', 'myajax_get_subcat');
function myajax_get_subcat() {
    $nonce = $_POST['categoryNonce'];
    $main_category = $_POST['category'];
    if (!wp_verify_nonce($nonce, 'myajax-get-subcat-nonce'))
        die ( 'Busted!');
    if(function_exists('wp_dropdown_categories')==true) {
        echo 'true';
    } else {
        echo 'false';
    }
    wp_dropdown_categories('taxonomy=category&selected=1&echo=1&orderby=NAME&order=ASC&hide_empty=0&hide_empty=0&hierarchical=1&depth=1&id=cat-location-secondary&child_of='.$main_category);  
    exit;
}

现在,当评论wp_dropdown_categories行时,我在客户端得到了一个"true",而当我取消注释该行时(PHP崩溃),我完全没有得到任何结果。php错误日志中没有任何内容(WAMP设置)。

此外,即使我添加了require_once(__DIR__.'/../../../wp-load.php');也不起作用,但如果我在浏览器中使用GET(对于函数.php),它会起作用。如有任何帮助,我们将不胜感激!

我的问题是因为我不返回json对象,而是返回html(实际上是文本和html的混合),并且您设置jQuery来验证响应是json,而事实并非如此。

最新更新