WordPress按ID排序类别

时间:2017-08-02 作者:Jimmy Lopez

我是新来的,想知道是否有人能帮助我。

我怎样才能让它按我想要的顺序或id显示我的类别?

我想从下拉列表中按特定顺序显示一些类别。

谢谢

<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>

1 个回复
SO网友:hwl

wp_dropdown_categories() 默认情况下,将按id列出。它利用get_terms() 如果您希望过滤$output 超出参数允许的范围。(我在下面添加了来源)。

它具有以下参数:

显示用于显示所有类别的“show\\u option\\u all”(字符串)文本<要显示的“show\\u option\\u none”(字符串)文本,用于不显示类别

  • \'option\\u none\\u value\'(字符串)在未选择类别时使用的值
  • \'orderby\' (字符串)Which column to use for ordering categories. See get_terms() for a list of accepted values. Default \'id\' (term_id).“显示计数”(bool | int)是否包括post计数。接受0、1或其布尔等价项。默认值0
  • \'hide\\u empty\'(bool | int)是否隐藏没有任何帖子的类别。接受0、1或其布尔等价项。默认值1
  • \'child\\u of\'(int)要检索的子项的项ID。请参阅get\\u terms()。默认值0
  • \'exclude\'(数组|字符串)数组或要排除的术语ID的逗号/空格分隔字符串。如果$include非空,则忽略$exclude。默认空数组
  • “echo”(bool | int)是回显还是返回生成的标记。接受0、1或其布尔等价项。默认值1“层次”(bool | int)是否遍历分类层次。接受0、1或其布尔等价项。默认值0
  • 选择元素的“tab\\u index”(int)选项卡索引。默认值0(无tabindex)
  • \'id\' (字符串)的值\'id\' attribute of the select element. 默认值为$name
  • \'class\' (字符串)的值\'class\' attribute of the select element. 默认“postform”
  • \'hide\\u if\\u empty\'(bool)True,如果找不到类别,则跳过生成标记。默认为false(即使找不到类别,也创建select元素)
  • \'required\'(bool)元素是否应该具有HTML5的“required”属性。默认值为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;
    }
    

    结束