为自定义分类和自定义帖子类型创建2层下拉菜单

时间:2016-01-03 作者:Chance Strickland

我想显示一个下拉菜单,其中包含自定义分类法的值列表。我的分类法是“发行年份”,下拉列表如下所示:

<select name="issue-year">
    <option value="#">Please select a year</option>
    <option value="2016">2016</option>
    <option value="2015">2015</option>
    <option value="2014">2014</option>
</select>
一旦选择了一年,第二个下拉列表将显示在第一个下拉列表的下方,以显示与所选分类法值匹配的自定义帖子类型中的帖子。我的自定义帖子类型是“新闻稿”

<select name="newsletter">
    <option value="#">Please select an issue</option>
    <option value="postname-1">Post Name 1</option>
    <option value="postname-2">Post Name 2</option>
    <option value="postname-3">Post Name 3</option>
</select>
我目前正在使用“get\\u terms\\u dropdown”来生成第一个字段,但我不知道如何从第一步到第二步。此外,如果有比我在下面的代码中所做的更好的方法,我很乐意听到。

function get_terms_dropdown($taxonomies, $args){
    $myterms = get_terms($taxonomies, $args);
    $output ="<select name=\'issue-year\'>";
    $output .="<option value=\'#\'>Please select a Year</option>";
    foreach($myterms as $term){
        $root_url = get_bloginfo(\'url\');
        $term_taxonomy=$term->taxonomy;
        $term_slug=$term->slug;
        $term_name =$term->name;
        $link = $term_slug;
        $output .="<option value=\'".$link."\'>".$term_name."</option>";
    }
    $output .="</select>";
return $output;
}

1 个回复
SO网友:philemall

结合jQuery/JavaScript和WP-AJAX;您可以在选择框中查找onchange事件,向管理员ajax发送ajax请求。php,然后执行自定义WP查询,以返回第二个下拉列表的html并将其附加到dom中。

https://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_%28action%29

http://api.jquery.com/jquery.ajax

添加完后,还可以使用onchange事件将新的选择框作为目标。