我试图使用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\'
});
});
我在函数中有这个。php:
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;
}
现在我在客户端发表评论时得到了一个“true”
wp_dropdown_categories 行,当我取消注释该行时,我什么也得不到(PHP崩溃)。php错误日志中没有任何内容(WAMP设置)。
而且,即使我添加require_once(__DIR__.\'/../../../wp-load.php\');
但如果我在浏览器中使用GET(用于functions.php),它就可以工作。任何帮助都将不胜感激!