你好@ntechi:
这是我写的一个函数,我把它命名为the_taxonomy_dropdown()
给你我认为你在寻找的东西。
function the_taxonomy_dropdown($taxonomy) {
$id = "{$taxonomy}-dropdown";
$js =<<<SCRIPT
<script type="text/javascript">
jQuery(document).ready(function($){
$("select#{$id}").change(function(){
window.location.href = $(this).val();
});
});
</script>
SCRIPT;
echo $js;
$terms = get_terms($taxonomy);
echo "<select name=\\"{$id}\\" id=\\"{$id}\\">";
foreach($terms as $term) {
echo \'<option value="\';
echo get_term_link(intval($term->term_id),$taxonomy);
echo \'">\' . "{$term->name}</option>";
}
echo "</select>";
}
你可以把
the_taxonomy_dropdown()
在您的主题中
functions.php
文件并从主题的模板文件中调用,如下所示:
<?php the_taxonomy_dropdown(\'name of taxonomy\'); ?>
注意我没有使用
wp_dropdown_categories()
因为它设置了
<option>
\'s值到
term_id
而不是术语的永久链接。您需要永久链接才能设置
window.location.href
在客户端。我们曾经
wp_dropdown_categories()
这会增加更多的复杂性;需要发出HTTP GET请求
term_id
到服务器上的页面,然后重定向到术语的永久链接。但是只构建HTML要容易得多
<select>
我们自己,就像我做的那样(而且它更容易响应,因为它不需要额外的HTTP请求。)
当然,一定要记住wp_enqueue_script()
中的jQuery\'init\'
钩子,也在你的主题中functions.php
文件:
add_action(\'init\',\'jquery_init\');
function jquery_init() {
wp_enqueue_script(\'jquery\');
}