mf_category_order() public méthode

public mf_category_order ( $cats, $parent, $depth, $resp = [] )
    public static function RelatedTypeInterface($customField, $inputName, $groupCounter, $fieldCounter)
    {
        global $mf_domain, $wpdb;
        $mf_post_id = apply_filters('mf_source_post_data', @$_REQUEST['post']);
        $customFieldId = '';
        if (isset($mf_post_id)) {
            $customFieldId = $customField->id;
            $value = esc_attr(RCCWP_CustomField::GetCustomFieldValues(true, $mf_post_id, $customField->name, $groupCounter, $fieldCounter));
        } else {
            $value = $customField->default_value[0];
        }
        //get id of related type / panel
        $panel_id = (int) $customField->properties['panel_id'];
        $requiredClass = "";
        if ($customField->required_field) {
            $requiredClass = "field_required";
        }
        ?>
		<div class="mf_custom_field">
		<select tabindex="3" <?php 
        if ($customField->required_field) {
            echo 'validate="required:true"';
        }
        ?>
 class="<?php 
        echo $requiredClass;
        ?>
 listbox_mf" name="<?php 
        echo $inputName;
        ?>
">
			<option value=""><?php 
        _e('--Select--', $mf_domain);
        ?>
</option>
		
		<?php 
        $pn_cache = array();
        // setup a panel name cache (so we only look up the panel name ONCe for each panel ID)
        if ($panel_id == -4) {
            $options = get_posts("post_type=post&numberposts=-1&order=ASC&orderby=title");
        } elseif ($panel_id == -3) {
            $options = get_posts("post_type=page&numberposts=-1&order=ASC&orderby=title");
        } elseif ($panel_id == -2) {
            $options = get_posts("post_type=post&meta_key=_mf_write_panel_id&numberposts=-1&order=ASC&orderby=title");
        } elseif ($panel_id == -1) {
            $options = get_posts("post_type=page&meta_key=_mf_write_panel_id&numberposts=-1&order=ASC&orderby=title");
        } elseif ($panel_id == -6) {
            $options = get_posts("post_type=any&numberposts=-1");
        } elseif ($panel_id == -7) {
            $options = get_categories("hide_empty=0");
            $options = RCCWP_WritePostPage::mf_category_order($options, 0, 0);
        } elseif ($panel_id == -5) {
            remove_filter('posts_where', array('RCCWP_Query', 'ExcludeWritepanelsPosts'));
            add_filter('posts_fields', 'RelatedTypeFieldsFilter');
            add_filter('posts_orderby', 'RelatedTypeOrderByFilter');
            $options = get_posts(array('suppress_filters' => false, 'post_type' => 'any', 'meta_key' => '_mf_write_panel_id', 'nopaging' => true, 'order' => 'ASC'));
            remove_filter('posts_fields', 'RelatedTypeFieldsFilter');
            remove_filter('posts_orderby', 'RelatedTypeOrderByFilter');
            add_filter('posts_where', array('RCCWP_Query', 'ExcludeWritepanelsPosts'));
        } else {
            $options = get_posts("post_type=any&meta_key=_mf_write_panel_id&numberposts=-1&meta_value={$panel_id}&order=ASC&orderby=title");
        }
        $last_panel_name = "";
        // traversal (for grouping)
        foreach ($options as $option) {
            /* TRAVERSAL ADDITION - Adds grouping of related type fields when all write panels are listed -- */
            $panel_name = "";
            $display_panel_name = "";
            if ($panel_id == -5 || $panel_id == -2 || $panel_id == -1) {
                $panel_name = $pn_cache[$option->meta_value];
                if (!$panel_name) {
                    // look it up
                    $sql = $wpdb->prepare("SELECT name FROM " . MF_TABLE_PANELS . " WHERE id = %d", array($option->meta_value));
                    $panel_name = $wpdb->get_var($sql);
                    if ($panel_name) {
                        $pn_cache[$option->meta_value] = $panel_name;
                    }
                }
                $panel = RCCWP_CustomWritePanel::Get($option->meta_value);
                if (!$panel_name) {
                    $panel_name = "";
                    $display_panel_name = "";
                } else {
                    if ($panel->single) {
                        $display_panel_name = "";
                    } else {
                        $display_panel_name = "&nbsp;&nbsp;&nbsp;" . Inflect::singularize($panel_name) . " - ";
                    }
                }
                if ($panel_name != "" && $panel_name != $last_panel_name) {
                    if ($last_panel_name != "") {
                        echo "</optgroup>";
                    }
                    if ($panel->single) {
                        $last_panel_name = "";
                    } else {
                        echo '<optgroup label="' . Inflect::pluralize($panel_name) . '">';
                        $last_panel_name = $panel_name;
                    }
                }
            }
            /* END TRAVERSAL ADDITION */
            if ($panel_id == -7) {
                $selected = $option->term_id == $value ? 'selected="selected"' : '';
                ?>
                    <option value="<?php 
                echo $option->term_id;
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo $display_panel_name . $option->name;
                ?>
</option><!-- TRAVERSAL UPDATE, adds display panel name as prefix -->
                       <?php 
            } else {
                $selected = $option->ID == $value ? 'selected="selected"' : '';
                ?>
                    <option value="<?php 
                echo $option->ID;
                ?>
" <?php 
                echo $selected;
                ?>
><?php 
                echo $display_panel_name . $option->post_title;
                ?>
</option><!-- TRAVERSAL UPDATE, adds display panel name as prefix -->
                       <?php 
            }
        }
        // TRAVERSAL ADDITION, closes optgroup
        if ($last_panel_name != "") {
            echo "</optgroup>";
        }
        // END TRAVERSAL ADDITION
        ?>

		</select></div>
		<?php 
        if ($customField->required_field) {
            ?>
			<div class="mf_message_error"><label for="<?php 
            echo $inputName;
            ?>
" class="error_magicfields error"><?php 
            _e("This field is required", $mf_domain);
            ?>
</label></div>
		<?php 
        }
        ?>
		
		<?php 
    }