Dropdown List of Authors with Posts in Category – WordPress
While at first it may seem impossible, creating a dropdown list of all the authors with posts in a specific category is not actually all that difficult. This will work with custom taxonomies and custom post types as well, so it should suit the needs of just about anyone. Let’s get right to it! The Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<form> <select onchange="window.open(this.options[this.selectedIndex].value,'_top')"> <option value="">Select by Author</option> <?php //Code to get a list of all authors with posts in this category, and then create a dropdown list of their names with links to their page $category = get_queried_object(); $taxonomy_name = 'custom_taxonomy_name_here'; //Change to reflect the name of your custom taxonomy $current_category = $category->slug; echo '<h1>' . $current_category . 'testing</h1>'; $author_array = array(); $args = array( 'posts_per_page' => -1, 'post_type' => 'custom_post_type_here', //Change to your custom post type 'tax_query' => array( array( 'taxonomy' => 'custom_taxonomy_name_here', //Change to reflect the name of your custom taxonomy 'field' => 'slug', 'terms' => $current_category ), ), 'orderby' => 'author', 'order' => 'ASC' ); $cat_posts = get_posts($args); foreach ($cat_posts as $cat_post) : if (!in_array($cat_post->post_author,$author_array)) { $author_array[] = $cat_post->post_author; } endforeach; foreach ($author_array as $author) : $auth = get_userdata($author)->display_name; $nicename = get_userdata($author)->user_nicename; echo '<option value="' . get_term_link( $category->slug, $taxonomy_name ) . '/' . $nicename . '">' . $auth . '</option>'; //creates the URL to our term, filtered by author endforeach; ?> </select> </form> |
There are … Read More