Wordpress выпадающая категория child of child - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в программировании, и я пытаюсь создать 4 уровня выпадающего.На данный момент я имею в виду ссылку здесь .

С помощью вышеуказанной ссылки я могу создать только 2 уровня раскрывающегося списка.Так как мои навыки программирования находятся на начальном уровне, я не уверен, как этого достичь.

Я создал такие категории WordPress:

Родительская категория> Дочерний 1 Категория> Дочерний2 Категория> Ребенок 3 Категория

Должно быть 4 Раскрывающийся список:

Родительский Выпадающий

Ребенок1 Выпадающий

Child2 выпадающий

Child 3 выпадающий

После того, как пользователь выберет все выпадающие, он долженперенаправить на сообщение с настройкой ссылок следующим образом:

http://www.example.com/parent/child1/child2/child3/

Можно ли создать 4-уровневый выпадающий список с настраиваемым перенаправлением?

1 Ответ

0 голосов
/ 04 декабря 2018

Ну, я попытался добавить приведенный ниже код в functions.php.Первый раскрывающийся список работает, когда я выбираю второй раскрывающийся список, он не заполняет автоматически третий раскрывающийся список.

Вот код, который я пробовал до сих пор.

if ( ! class_exists( 'frontendAjaxDropdown' ) ):
 class frontendAjaxDropdown
 {
 /**
 * Loading WordPress hooks
 */
 function __construct()
 {
 /**
 * Add shortcode function
 */
 add_shortcode( 'ajax-dropdown', array($this, 'init_shortocde') );
 /**
 * Register ajax action
 */
 add_action( 'wp_ajax_get_subcat1', array($this, 'getSubCat1') );
 /**
 * Register ajax action for non loged in user
 */
 add_action('wp_ajax_nopriv_get_subcat1', array($this, 'getSubCat1') );
 
 
 add_action( 'wp_ajax_get_subcat2', array($this, 'getSubCat2') );
 /**
 * Register ajax action for non loged in user
 */
 add_action('wp_ajax_nopriv_get_subcat2', array($this, 'getSubCat2') ); 
 
 
 }
 /**
 * Show parent dropdown for wordpress category and loaded necessarry javascripts
 */
 function init_shortocde()
 {
 wp_dropdown_categories(
 'name=main_cat&selected=-1&hierarchical=1&depth=1&hide_empty=0&show_option_none=All Categories'
 );
 ?>
 <script type="text/javascript">
 (function($){
 $("#main_cat").change(function(){
 $("#sub_cat1").empty();
 $("#sub_cat2").empty();
 $.ajax({
 type: "post",
 url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
 data: { action: 'get_subcat1', cat_id1: $("#main_cat option:selected").val() },
 beforeSend: function() {$("#loading").fadeIn('slow');},
 success: function(data) {
 $("#loading").fadeOut('slow');
 $("#sub_cat1").append(data);
 $("#sub_cat2").empty();
 }
 });
 });
 })(jQuery);
 </script>

<div id="loading" style="display: none;">Loading...</div>
 <div id="sub_cat1"></div>
 <?php
 }
 /**
 * AJAX action: Shows dropdown for selected parent
 */
 function getSubCat1()
 {
 wp_dropdown_categories(
 "name=sub_cat1&selected=-1&hierarchical=1&depth=1&hide_empty=0&child_of={$_POST['cat_id1']}"
 );
 }
 }
?>


 <script type="text/javascript">
 (function($){
 $("#sub_cat1").change(function(){
 $("#sub_cat2").empty();
 $.ajax({
 type: "post",
 url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
 data: { action: 'get_subcat2', cat_id2: $("#sub_cat1 option:selected").val() },
 beforeSend: function() {$("#loading").fadeIn('slow');},
 success: function(data) {
 $("#loading").fadeOut('slow');
 $("#sub_cat2").append(data);
 }
 });
 });
 })(jQuery);
 </script>

 
 
 <div id="loading1" style="display: none;">Loading...</div>
 <div id="sub_cat2"></div>
 
 <?php
  

 
 function getSubCat2()
 {
 wp_dropdown_categories(
 "name=sub_cat2&selected=-1&hierarchical=1&depth=1&hide_empty=0&child_of={$_POST['cat_id1']}+{$_POST['cat_id2']}"
 );
 
 
 die();
 }

endif;
new frontendAjaxDropdown();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...