2017-04-18 3 views
0

私はこれでとても新しいです。だから、これまで何をしていたのですか。私はすべての私の最初のレベルのカテゴリを持つ要素を生成するために、次のコードを使用しました:wp_dropdown_categories()によって生成された<option>要素へのリンクを追加してください

<?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); 
    ?> 

しかし残念ながら、私はwp_dropdown_categories機能によって生成されたすべての<option>タグに<a href="">を追加するために管理することはできません。

生成されるカテゴリごとにリンクを追加することは可能ですか?ユーザーを選択したカテゴリページにリダイレクトしたい事前 で

おかげでアレックス

答えて

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

あなたNaveedをありがとうございます。あなたのコードは私のニーズに合っていません。それはブログカテゴリ(手動でコード化された)と未分類カテゴリである最初のオプションを表示することができます。選択された要素をドロップダウンメニューにリンクする要素はありません。

+0

私はちょうど更新したコードをチェックしてください。詳細については、これら2つのWordPress関数をご覧ください。 https://developer.wordpress.org/reference/functions/get_categories/ https://developer.wordpress.org/reference/functions/get_terms/ https:// codex.wordpress.org/Function_Reference/get_category_link –

0

はあなたのNaveenをありがとうございます。コードが生成されたようです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> 
関連する問題