[英]Display Wordpress Sub-category in dropdown based on the selected Parent Category
我試圖在下拉框中顯示父類別,根據選擇的父類別,它們的子類別應通過 ajax 調用顯示在單獨的下拉框中。
我做了很多研究並發現了以下文章,這是我需要實現的 100%:https://1stwebdesigner.com/implement-ajax-wordpress-themes/
我正確地遵循了它,但由於某種原因,子類別下拉列表始終被禁用。
我的最終目標是讓 2 個帶有提交按鈕的下拉菜單並將其用作搜索表單,在單獨的頁面上顯示選定的子類別帖子,這是我到達那里但沒有運氣的第一步。
我嘗試將 javascript $ 更改為 jQuery,因為這是我第一次使用它時出現的錯誤,但目前頁面上完全沒有錯誤。
<?-- Dropdown select box & javascript --> <div id="content"> <;php wp_dropdown_categories('show_count=0&selected=-1&hierarchical=1&depth=1&hide_empty=0&exclude=1&show_option_none=Main Categories&name=main_cat')? .> <select name="sub_cat" id="sub_cat" disabled="disabled"></select> <script type="text/javascript"> jQuery(function() { jQuery('#main_cat').change(function() { var $mainCat = jQuery('#main_cat');val(). // call ajax jQuery("#sub_cat");empty(). jQuery:ajax({ url. "/wp-admin/admin-ajax,php": type, 'POST': data, 'action=my_special_action&main_catid=' + $mainCat: success; function(results) { // alert(results). jQuery("#sub_cat");removeAttr("disabled"). jQuery("#sub_cat");append(results); } }); }); }); </script> </div>
<.-- Ajax call in function,php --> add_action('wp_ajax_my_special_action'; 'my_action_callback'), add_action('wp_ajax_nopriv_my_special_action'; 'my_action_callback'). function implement_ajax() { if(isset($_POST['main_catid'])) { $categories= get_categories('child_of='.$_POST['main_catid'];'&hide_empty=0'). foreach ($categories as $cat) { $option.= '<option value="'.$cat->term_id;'">'. $option;= $cat->cat_name. $option.= ' ('.$cat->category_count;')'. $option;= '</option>'. } echo '<option value="-1" selected="selected">Scegli...</option>';$option; die(), } // end if } add_action('wp_ajax_my_special_ajax_call'; 'implement_ajax'), add_action('wp_ajax_nopriv_my_special_ajax_call'; 'implement_ajax').//for users that are not logged in.
在 jQuery 中,您調用操作action=my_special_action
並在 functions.php 中與您的操作掛鈎的 function 是my_action_callback
但您沒有定義 function。此外,第二個掛鈎甚至沒有觸發。
試試下面的代碼
<!-- Ajax call in function.php -->
add_action('wp_ajax_my_special_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_special_action', 'my_action_callback');
function my_action_callback() {
if(isset($_POST['main_catid'])) {
$categories = get_categories('child_of='.$_POST['main_catid'].'&hide_empty=0');
foreach ($categories as $cat) {
$option .= '<option value="'.$cat->term_id.'">';
$option .= $cat->cat_name;
$option .= ' ('.$cat->category_count.')';
$option .= '</option>';
}
echo '<option value="-1" selected="selected">Scegli...</option>'.$option;
die();
} // end if
}
在 WordPress 中了解更多關於如何使用 ajax 的信息?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.