我很陌生。所以到目前为止我已经做到了。我使用以下代码生成一个包含所有第一级别类别的元素:
<?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函数生成的所有<a href="">
标记添加<option>
。
是否可以为每个生成的类别添加链接。我想将用户重定向到选定的类别页面。
提前致谢 亚历
答案 0 :(得分: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>
答案 1 :(得分:0)
谢谢Naveen。似乎代码生成正常:
<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页面。
答案 2 :(得分: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>