Wordpress order categories by ID

I am new to get terms and wanted to know if someone can help me.How can I get this to show my categories in order or id

I am new to get terms and wanted to know if someone can help me.

How can I get this to show my categories in order or id that I want?

I want to show a number of categories in a specific order from a drop down.

Thanks!

<div class="event_filter_item">
        <?php
            $categories = get_terms( 'event-category' );

            $dropdown_options = array(
                "theme" => "dropdown_base",
                "label" => "Events by Category",
                'orderby' => 'ID',
'include' => '155',
                "links" => true
            );
        ?>
        <label class="event_filter_label" for="event_filter_category">Events by Category</label>
        <select class="js-dropdown event_filter_select event_filter_category" id="event_filter_category" name="event_filter_category" data-dropdown-options="<?php my_json_attribute( $dropdown_options ); ?>">
            <option value="<?php my_page_link( 'calendar' ); ?>">All Categories</option>
            <?php
                foreach ( $categories as $category ) :
                    $link = get_term_link( $category->term_id );
                    $attr = ( strpos( $my_page_url, $link ) > -1 ) ? 'selected="selected"' : '';
            ?>
            <option value="<?php echo $link; ?>" <?php echo $attr; ?>><?php echo $category->name; ?></option>
            <?php
                endforeach;
            ?>
        </select>
    </div>

I am new to get terms and wanted to know if someone can help me.

How can I get this to show my categories in order or id that I want?

I want to show a number of categories in a specific order from a drop down.

Thanks!

<div class="event_filter_item">
        <?php
            $categories = get_terms( 'event-category' );

            $dropdown_options = array(
                "theme" => "dropdown_base",
                "label" => "Events by Category",
                'orderby' => 'ID',
'include' => '155',
                "links" => true
            );
        ?>
        <label class="event_filter_label" for="event_filter_category">Events by Category</label>
        <select class="js-dropdown event_filter_select event_filter_category" id="event_filter_category" name="event_filter_category" data-dropdown-options="<?php my_json_attribute( $dropdown_options ); ?>">
            <option value="<?php my_page_link( 'calendar' ); ?>">All Categories</option>
            <?php
                foreach ( $categories as $category ) :
                    $link = get_term_link( $category->term_id );
                    $attr = ( strpos( $my_page_url, $link ) > -1 ) ? 'selected="selected"' : '';
            ?>
            <option value="<?php echo $link; ?>" <?php echo $attr; ?>><?php echo $category->name; ?></option>
            <?php
                endforeach;
            ?>
        </select>
    </div>
Share Improve this question edited Aug 2, 2017 at 16:39 Jimmy Lopez asked Aug 2, 2017 at 16:09 Jimmy LopezJimmy Lopez 111 silver badge4 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

wp_dropdown_categories() will list by id by default. It utilizes get_terms() as well, and provides a hook to toward the end if you wish to filter the html of $output further than the parameters allow. (I've added the source below).

It has the following parameters:

  • 'show_option_all' (string) Text to display for showing all categories.
    • 'show_option_none' (string) Text to display for showing no categories.
    • 'option_none_value' (string) Value to use when no category is selected.
    • 'orderby' (string) Which column to use for ordering categories. See get_terms() for a list of accepted values. Default 'id' (term_id).
    • 'order' (string) Whether to order terms in ascending or descending order. Accepts 'ASC' or 'DESC'. Default 'ASC'.
    • 'pad_counts' (bool) See get_terms() for an argument description. Default false.
    • 'show_count' (bool|int) Whether to include post counts. Accepts 0, 1, or their bool equivalents. Default 0.
    • 'hide_empty' (bool|int) Whether to hide categories that don't have any posts. Accepts 0, 1, or their bool equivalents. Default 1.
    • 'child_of' (int) Term ID to retrieve child terms of. See get_terms(). Default 0.
    • 'exclude' (array|string) Array or comma/space-separated string of term ids to exclude. If $include is non-empty, $exclude is ignored. Default empty array.
    • 'echo' (bool|int) Whether to echo or return the generated markup. Accepts 0, 1, or their bool equivalents. Default 1.
    • 'hierarchical' (bool|int) Whether to traverse the taxonomy hierarchy. Accepts 0, 1, or their bool equivalents. Default 0.
    • 'depth' (int) Maximum depth. Default 0.
    • 'tab_index' (int) Tab index for the select element. Default 0 (no tabindex).
    • 'name' (string) Value for the 'name' attribute of the select element. Default 'cat'.
    • 'id' (string) Value for the 'id' attribute of the select element. Defaults to the value of $name.
    • 'class' (string) Value for the 'class' attribute of the select element. Default 'postform'.
    • 'selected' (int|string) Value of the option that should be selected. Default 0.
    • 'value_field' (string) Term field that should be used to populate the 'value' attribute of the option elements. Accepts any valid term field: 'term_id', 'name', 'slug', 'term_group', - 'term_taxonomy_id', 'taxonomy', 'description', 'parent', 'count'. Default 'term_id'.
    • 'taxonomy' (string|array) Name of the category or categories to retrieve. Default 'category'.
    • 'hide_if_empty' (bool) True to skip generating markup if no categories are found. Default false (create select element even if no categories are found).
    • 'required' (bool) Whether the element should have the HTML5 'required' attribute. Default false.

function wp_dropdown_categories( $args = '' ) {
    $defaults = array(
        'show_option_all'   => '',
        'show_option_none'  => '',
        'orderby'           => 'id',
        'order'             => 'ASC',
        'show_count'        => 0,
        'hide_empty'        => 1,
        'child_of'          => 0,
        'exclude'           => '',
        'echo'              => 1,
        'selected'          => 0,
        'hierarchical'      => 0,
        'name'              => 'cat',
        'id'                => '',
        'class'             => 'postform',
        'depth'             => 0,
        'tab_index'         => 0,
        'taxonomy'          => 'category',
        'hide_if_empty'     => false,
        'option_none_value' => -1,
        'value_field'       => 'term_id',
        'required'          => false,
    );

    $defaults['selected'] = ( is_category() ) ? get_query_var( 'cat' ) : 0;

    // Back compat.
    if ( isset( $args['type'] ) && 'link' == $args['type'] ) {
        _deprecated_argument( __FUNCTION__, '3.0.0',
            /* translators: 1: "type => link", 2: "taxonomy => link_category" */
            sprintf( __( '%1$s is deprecated. Use %2$s instead.' ),
                '<code>type => link</code>',
                '<code>taxonomy => link_category</code>'
            )
        );
        $args['taxonomy'] = 'link_category';
    }

    $r = wp_parse_args( $args, $defaults );
    $option_none_value = $r['option_none_value'];

    if ( ! isset( $r['pad_counts'] ) && $r['show_count'] && $r['hierarchical'] ) {
        $r['pad_counts'] = true;
    }

    $tab_index = $r['tab_index'];

    $tab_index_attribute = '';
    if ( (int) $tab_index > 0 ) {
        $tab_index_attribute = " tabindex=\"$tab_index\"";
    }

    // Avoid clashes with the 'name' param of get_terms().
    $get_terms_args = $r;
    unset( $get_terms_args['name'] );
    $categories = get_terms( $r['taxonomy'], $get_terms_args );

    $name = esc_attr( $r['name'] );
    $class = esc_attr( $r['class'] );
    $id = $r['id'] ? esc_attr( $r['id'] ) : $name;
    $required = $r['required'] ? 'required' : '';

    if ( ! $r['hide_if_empty'] || ! empty( $categories ) ) {
        $output = "<select $required name='$name' id='$id' class='$class' $tab_index_attribute>\n";
    } else {
        $output = '';
    }
    if ( empty( $categories ) && ! $r['hide_if_empty'] && ! empty( $r['show_option_none'] ) ) {

        /**
         * Filters a taxonomy drop-down display element.
         *
         * A variety of taxonomy drop-down display elements can be modified
         * just prior to display via this filter. Filterable arguments include
         * 'show_option_none', 'show_option_all', and various forms of the
         * term name.
         *
         * @since 1.2.0
         *
         * @see wp_dropdown_categories()
         *
         * @param string $element Taxonomy element to list.
         */
        $show_option_none = apply_filters( 'list_cats', $r['show_option_none'] );
        $output .= "\t<option value='" . esc_attr( $option_none_value ) . "' selected='selected'>$show_option_none</option>\n";
    }

    if ( ! empty( $categories ) ) {

        if ( $r['show_option_all'] ) {

            /** This filter is documented in wp-includes/category-template.php */
            $show_option_all = apply_filters( 'list_cats', $r['show_option_all'] );
            $selected = ( '0' === strval($r['selected']) ) ? " selected='selected'" : '';
            $output .= "\t<option value='0'$selected>$show_option_all</option>\n";
        }

        if ( $r['show_option_none'] ) {

            /** This filter is documented in wp-includes/category-template.php */
            $show_option_none = apply_filters( 'list_cats', $r['show_option_none'] );
            $selected = selected( $option_none_value, $r['selected'], false );
            $output .= "\t<option value='" . esc_attr( $option_none_value ) . "'$selected>$show_option_none</option>\n";
        }

        if ( $r['hierarchical'] ) {
            $depth = $r['depth'];  // Walk the full depth.
        } else {
            $depth = -1; // Flat.
        }
        $output .= walk_category_dropdown_tree( $categories, $depth, $r );
    }

    if ( ! $r['hide_if_empty'] || ! empty( $categories ) ) {
        $output .= "</select>\n";
    }
    /**
     * Filters the taxonomy drop-down output.
     *
     * @since 2.1.0
     *
     * @param string $output HTML output.
     * @param array  $r      Arguments used to build the drop-down.
     */
    $output = apply_filters( 'wp_dropdown_cats', $output, $r );

    if ( $r['echo'] ) {
        echo $output;
    }
    return $output;
}

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742281519a4414576.html

相关推荐

  • Wordpress order categories by ID

    I am new to get terms and wanted to know if someone can help me.How can I get this to show my categories in order or id

    21小时前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信