2017-04-18 47 views
0

我對此很新穎。所以我迄今爲止做了什麼。我用下面的代碼用我所有的第一級類別來生成元素:添加一個鏈接到<option>由wp_dropdown_categories()生成的元素

<?php 
    $args = array(
     'show_option_all' => 'Blog Categories', 
     'show_option_none' => '', 
     'option_none_value' => '-1', 
     'orderby'   => 'ID', 
     'order'    => 'ASC', 
     'show_count'   => 0, 
     'hide_empty'   => 0, 
     'child_of'   => 0, 
     'exclude'   => '', 
     'include'   => '4,2,3,5,6', 
     'echo'    => 1, 
     'selected'   => 0, 
     'hierarchical'  => 1, 
     'name'    => 'cat', 
     'id'     => 'cat-blog', 
     'class'    => 'form-control mt33', 
     'depth'    => 0, 
     'tab_index'   => 0, 
     'taxonomy'   => 'category', 
     'hide_if_empty'  => false, 
     'value_field'  => 'term_id', 
    ); 
    wp_dropdown_categories($args); 
    ?> 

但遺憾的是我不能管理到<a href="">添加到由wp_dropdown_categories功能生成所有<option>標籤。

是否可以爲每個生成的類別添加鏈接。我想將用戶重定向到選定的類別頁面。

在此先感謝亞歷克斯

回答

0

你可以試試這個代碼....

<select name="event-dropdown"> 
    <option value=""><?php echo esc_attr_e('Blog Categories', 'textdomain'); ?></option> 
    <?php 
    $args = array(
       'orderby' => 'ID', 
       'order'=> 'ASC', 
       'exclude' => array(1) 
      ); 

    $categories = get_categories($args); 
    foreach ($categories as $category) { 
     $term_link = get_category_link($category->term_id); 
     $term_link = esc_url($term_link); 
     echo '<option value="'.$category->term_id.'"><a href="'.$term_link.'">'.$category->cat_name.'</a></option>'; 
    } 
    ?> 
</select> 
0

謝謝納文。看來,代碼生成OK:

<select name="cat" id="cat-blog" class="form-control mt33"><option value="">Blog Categories</option> 
        <option value="2"><a href="http://localhost/blog/category/cat1/">cat1</a></option><option value="3"><a href="http://localhost/blog/category/cat2/">cat2</a></option><option value="4"><a href="http://localhost/blog/category/cat3/">cat3</a></option><option value="5"><a href="http://localhost/blog/category/cat4">cat4</a></option><option value="6"><a href="http://localhost/blog/category/cat5">cat5</a></option></select> 

但問題是,當我選擇的選項之一,該鏈接不起作用。我沒有重定向到指定的類別頁面。我有一個通用的category.php頁面。

0

是解決我的問題的代碼是:

<select name="cat" onChange="window.document.location.href=this.options[this.selectedIndex].value;"> 
         <option value=""><?php echo esc_attr_e('Blog Categories', 'textdomain'); ?></option> 
        <?php 
        $args = array(
           'orderby' => 'ID', 
           'order'=> 'ASC', 
           'hide_empty' => 0, 
          ); 

        $categories = get_categories($args); 
        foreach ($categories as $category) { 
         $term_link = get_category_link($category->term_id); 
         $term_link = esc_url($term_link); 
         echo '<option value="'.$term_link.'">'.$category->cat_name.'</option>'; 
        } 
        ?> 
       </select>