分类深层功能


Category deep function

如何在此函数上使用空格填充来获得类别深度。目前我有选择框与所有类别有相同的水平。

<?php
add_action('add_meta_boxes', 'my_custom_metabox');
function my_custom_metabox() {
    add_meta_box('custom-taxonomy-dropdown','Brands','taxonomy_dropdowns_box','post','side','high');
}
function taxonomy_dropdowns_box( $post ) {
    global $brand_taxonomy, $taxonomy_name;
    wp_nonce_field('custom-dropdown', 'dropdown-nonce');
    $terms = get_terms( $brand_taxonomy, 'hide_empty=1&hierarchical=1;');
    if ( is_a( $terms, 'WP_Error' ) ) {
        $terms = array();
    }
    $object_terms = wp_get_object_terms( $post->ID, $brand_taxonomy, array('fields'=>'ids'));
    if ( is_a( $object_terms, 'WP_Error' ) ) {
        $object_terms = array();
    }
    // you can move the below java script to admin_head
    ?>
    <?php

    wp_dropdown_categories('show_option_none=Select category&show_count=1&hierarchical=1&taxonomy=ad_cat');

    echo "Brand:";
    echo "<select id='custombrandoptions' name='custombrands[]'>";
    echo "<option value='0'>None</option>";
    foreach ( $terms as $term ) {
        if ( in_array($term->term_id, $object_terms) ) {
            $parent_id = $term->term_id;
            echo "<option value='{$term->term_id}' selected='selected'>{$term->name}</option>";
        } else {
            echo "<option value='{$term->term_id}'>{$term->name}</option>";
        }
    }
    echo "</select><br />";

    echo '<input type="text" value="'.$meta = get_post_meta($post->ID, 'cat_include', true).'" />';
}

来源:http://paste.php.lv/dc485b1e6f37f09f916fccc6ae70ed2f?lang=php

我不确定你的问题在哪里,但也许你正在寻找fpr str_repeat http://php.net/manual/en/function.str-repeat.php ..

所以你可以这样使用:

echo '<option value="" ..>'.str_repeat(' ',$currentLevel+1).'</option>';
我不明白你是如何得到层次的深度…也许递归地遍历层次结构是个好主意…)