[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fq63s2R525g4xo9t8YzZQz0JGysjCYZu12FqQsSs4sPU":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":27,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":48,"crawl_stats":37,"alternatives":55,"analysis":155,"fingerprints":339},"beautiful-taxonomy-filters","Beautiful taxonomy filters","2.4.6","Jonathandejong","https:\u002F\u002Fprofiles.wordpress.org\u002Fjonathandejong\u002F","\u003Cp>The Beautiful Taxonomy Filters plugin is an easy and good-looking way to provide your visitors with filtering for your post types. With this you get a complete solution for adding filtering based on custom taxonomy terms\u002Fcategories\u002Ftags. It will also automatically add rewrite rules for pretty looking filter URLs. It’s completely automatic, works without javascript and is based on the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftommcfarlin\u002FWordPress-Plugin-Boilerplate\" rel=\"nofollow ugc\">WordPress Plugin boilerplate\u003C\u002Fa> for a \u003Cem>standardized, organized and object-oriented\u003C\u002Fem> codebase. It uses \u003Ca href=\"http:\u002F\u002Fivaynberg.github.io\u002Fselect2\u002F\" rel=\"nofollow ugc\">select2\u003C\u002Fa> for pretty looking and user friendly dropdowns but will fall back to ordinary ones if javascript is not supported.\u003Cbr \u002F>\n\u003Cstrong>No more horrible looking URLs or hacky Javascript solutions\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Activate filtering on any registered public custom post type.\u003C\u002Fli>\n\u003Cli>Exclude taxonomies you just don’t want the visitors to filter on.\u003C\u002Fli>\n\u003Cli>Beautifies the resulting URLs. You won’t see any \u002Fposttype\u002F?taxonomy1=term. Instead you’ll see \u002Fposttype\u002Ftaxonomy\u002Fterm.\u003C\u002Fli>\n\u003Cli>The pretty URLs are much more SEO friendly so you’ll give a boost to those filtered pages. Just remember to use canonicals where it’s appropriate.\u003C\u002Fli>\n\u003Cli>BETA: Conditional dropdowns. Make sure your visitors never end up with empty filtered results. AJAX reloads the values in each dropdown based on previously selected values.\u003C\u002Fli>\n\u003Cli>Polylang compatible.\u003C\u002Fli>\n\u003Cli>Multisite compatible. No network settings at the moment.\u003C\u002Fli>\n\u003Cli>Comes with a complete functional filter module for you to put in your theme.\u003C\u002Fli>\n\u003Cli>Three alternatives for putting the filter modules in your theme:\n\u003Cul>\n\u003Cli>Widgets (Also lets you “hard set” a post type for use anywhere)\u003C\u002Fli>\n\u003Cli>do_action hooks (for granular control)\u003C\u002Fli>\n\u003Cli>Automagic setting which will magically place the modules in your archive from thin air. Wizards at work…\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Choose from different styles for the component, or disable styling and do it yourself in style.css! Just want to tweak a style? Add your custom CSS directly on the settings page.\u003C\u002Fli>\n\u003Cli>Many more settings for fine-tuning the filter modules behavior:\n\u003Cul>\n\u003Cli>A ”Clear all” link for the filter component.\u003C\u002Fli>\n\u003Cli>Choose between placeholders or “show all” in the dropdowns.\u003C\u002Fli>\n\u003Cli>Hide empty terms in the dropdowns.\u003C\u002Fli>\n\u003Cli>Show a post count next to the term name\u003C\u002Fli>\n\u003Cli>Disable select2\u003C\u002Fli>\n\u003Cli>Show term description\u003C\u002Fli>\n\u003Cli>Disable headings you don’t want\u003C\u002Fli>\n\u003Cli>More to come!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Ability to show your visitors information about their current active filtering and control the look of this.\u003C\u002Fli>\n\u003Cli>Allows for custom GET parameters to be included. Extend the filter your way with maybe a custom search-parameter or whatever you like.\u003C\u002Fli>\n\u003Cli>Many \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbeautiful-taxonomy-filters\u002Fother_notes\u002F\" rel=\"ugc\">filters and actions\u003C\u002Fa> for modifying the plugins behavior. For you control freaks out there…\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Languages\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>English\u003C\u002Fli>\n\u003Cli>Swedish\u003C\u002Fli>\n\u003Cli>Spanish (Thanks to Juan Javier Moreno Restituto)\u003C\u002Fli>\n\u003Cli>Dutch (Thanks to Piet Bos)\u003C\u002Fli>\n\u003Cli>German (Thanks to \u003Ca href=\"http:\u002F\u002Fmacbo.de\u002F\" rel=\"nofollow ugc\">Matthias Bonnes\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>French (Thanks to \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fbrikou\" rel=\"nofollow ugc\">Brice Capobianco\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Simplified Chinese (Thanks to \u003Ca href=\"http:\u002F\u002Fwww.wpzhiku.com\u002F\" rel=\"nofollow ugc\">Amos Lee\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Portuguese (Thanks to \u003Ca href=\"http:\u002F\u002Fwww.wearemultiweb.com\u002F\" rel=\"nofollow ugc\">Luis Martins\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Portuguese Brasil (Thanks to Bruno Sousa)\u003C\u002Fli>\n\u003Cli>Catalan (Thanks to \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fprofile\u002Fdiavolo669\" rel=\"ugc\">Maiol Xercavins\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Swiss (Thanks to \u003Ca href=\"http:\u002F\u002Fwerbelinie.ch\u002F\" rel=\"nofollow ugc\">Raphael Hüni\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Bulgarian (Thanks to \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGeorgi-Marokov\" rel=\"nofollow ugc\">Georgi Marokov\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Romanian (Thanks to \u003Ca href=\"www.novace.ro\" rel=\"nofollow ugc\">Roberto Tamas\u003C\u002Fa>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Do you want to translate this plugin to another language? I recommend using POEdit (http:\u002F\u002Fpoedit.net\u002F) or if you prefer to do it straight from the WordPress admin interface (https:\u002F\u002Fwordpress.org\u002Fplugins\u002Floco-translate\u002F). When you’re done, send us the file(s) to me@jonte.dev and we’ll add it to the official plugin!\u003C\u002Fp>\n\u003Ch4>Other\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Based on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftommcfarlin\u002FWordPress-Plugin-Boilerplate\" rel=\"nofollow ugc\">WordPress Plugin Boilerplate\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Uses \u003Ca href=\"http:\u002F\u002Fivaynberg.github.io\u002Fselect2\u002F\" rel=\"nofollow ugc\">Select2\u003C\u002Fa> to enhance dropdowns\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Featured on\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fwww.wptavern.com\u002Fbeautiful-taxonomy-filters-for-wordpress-custom-post-types\" rel=\"nofollow ugc\">WP Tavern\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fwww.rivertheme.com\u002Ftop-22-free-wordpress-plugins-of-december-2014\u002F\" rel=\"nofollow ugc\">RiverTheme\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fpremium.wpmudev.org\u002Fblog\u002Fthis-week-in-wordpress-5\u002F\" rel=\"nofollow ugc\">The WhiP (WPMU DEV)\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fwww.total-photoshop.com\u002F\" rel=\"nofollow ugc\">TotalPhotoshop\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>API\u003C\u002Fh3>\n\u003Ch4>**Filters**\u003C\u002Fh4>\n\u003Cp>These are the filters available to modify the behavior of the plugin. These all take at least 1 parameter which you must return\u003C\u002Fp>\n\u003Ch4>beautiful_filters_dropdown_categories\u003C\u002Fh4>\n\u003Cp>$args is an array of the arguments put into the wp_dropdown_categories function.\u003Cbr \u002F>\n$taxonomy is the current taxonomy.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_categories_dropdown( $args, $taxonomy ) {\n\n    return $args;\n}\nadd_filter( 'beautiful_filters_dropdown_categories', 'modify_categories_dropdown’, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_post_types\u003C\u002Fh4>\n\u003Cp>$post_types is an array. Modifies the selected post types before being used.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_post_types( $post_types ) {\n\n    return $post_types;\n}\nadd_filter( 'beautiful_filters_post_types', 'modify_post_types', 10, 1 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_taxonomies\u003C\u002Fh4>\n\u003Cp>$taxonomies is an array. Modifies the excluded taxonomies before being used.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_categories_dropdown( $taxonomies ) {\n\n    return $taxonomies;\n}\nadd_filter( 'beautiful_filters_taxonomies', 'modify_categories_dropdown', 10, 1 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_taxonomy_order\u003C\u002Fh4>\n\u003Cp>$taxonomies is an array of the taxonomies slugs. $current_post_type is the post type we’re using the filter on. This must return the $taxonomies array.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function moveElement(&$array, $a, $b) {\n    $out = array_splice($array, $a, 1);\n    array_splice($array, $b, 0, $out);\n}\n\nfunction custom_tax_ordering($taxonomies, $current_post_type){\n    moveElement($taxonomies, 2, 0);\n    return $taxonomies;\n}\nadd_filter('beautiful_filters_taxonomy_order', 'custom_tax_ordering');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_dropdown_placeholder\u003C\u002Fh4>\n\u003Cp>$placeholder is the string used for the placeholder.\u003Cbr \u002F>\n$taxonomy is the current taxonomy.\u003Cbr \u002F>\nIn order to change the placeholders you must use this filter rather than the \u003Cem>modify_categories_dropdown\u003C\u002Fem> argument “show_option_all”.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_dropdown_placeholder( $placeholder, $taxonomy ) {\n    return 'New placeholder';\n}\nadd_filter( 'beautiful_filters_dropdown_placeholder', 'modify_dropdown_placeholder', 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_language\u003C\u002Fh4>\n\u003Cp>Changes the language code for the current page load.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_current_language( $language ) {\n    return 'sv';\n}\nadd_filter( 'beautiful_filters_language', 'modify_current_language' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_rtl\u003C\u002Fh4>\n\u003Cp>Changes wether the page is RTL or not.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_current_language( $rtl ) {\n    return true;\n}\nadd_filter( 'beautiful_filters_rtl', 'modify_rtl' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_disable_fuzzy\u003C\u002Fh4>\n\u003Cp>Disables select2 fuzzy search. particularly useful for terms that are all numbers.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function disable_fuzzy_search( $boolean ) {\n    return true;\n\n}\nadd_filter('beautiful_filters_disable_fuzzy', 'disable_fuzzy_search', 10, 1);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_clear_all\u003C\u002Fh4>\n\u003Cp>$bool is a boolean which decides if the ”Clear all” link should be used or not. $current_post_type is the current post type being filtered\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_clear_all( $bool, $current_post_type ) {\n\n    \u002F\u002FOnly add the clear all link to a specific posttype\n    if($current_post_type == 'movies'){\n        $bool = true;\n    }\n    return $bool;\n}\nadd_filter( 'beautiful_filters_clear_all', 'modify_clear_all', 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_hide_empty\u003C\u002Fh4>\n\u003Cp>$bool is a boolean which decides if empty terms should be displayed or not. $current_post_type is the current post type being filtered\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_hide_empty( $bool, $current_post_type ) {\n\n    return $bool;\n}\nadd_filter( 'beautiful_filters_show_empty', 'modify_hide_empty', 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_show_count\u003C\u002Fh4>\n\u003Cp>$bool is a boolean which decides if post count should be displayed or not. $current_post_type is the current post type being filtered\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_show_count( $bool, $current_post_type ) {\n\n    return $bool;\n}\nadd_filter( 'beautiful_filters_show_empty', 'modify_show_count', 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_show_description\u003C\u002Fh4>\n\u003Cp>$bool is a boolean which decides if term description should be displayed or not. $current_post_type is the current post type being filtered\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_show_description( $bool, $current_post_type ) {\n\n    return $bool;\n}\nadd_filter( 'beautiful_filters_show_description', 'modify_show_description', 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_dropdown_order\u003C\u002Fh4>\n\u003Cp>$order is a string which defaults to ASC, other possible value is DESC. $taxonomy is the current taxonomy slug\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_dropdown_order( $order, $taxonomy) {\n\n    return $order;\n}\nadd_filter( 'beautiful_filters_dropdown_order', 'modify_dropdown_order', 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_dropdown_orderby\u003C\u002Fh4>\n\u003Cp>$order is a string which defaults to NAME, other possible value is ID or SLUG. $taxonomy is the current taxonomy slug\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_dropdown_orderby( $orderby, $taxonomy) {\n\n    return $orderby;\n}\nadd_filter( 'beautiful_filters_dropdown_orderby', 'modify_dropdown_orderby', 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_dropdown_behaviour\u003C\u002Fh4>\n\u003Cp>$behaviour is a string that should be either show_all_option or show_placeholder_option. $current_post_type is the current posttype name.\u003Cbr \u002F>\nUse this to modify the dropdown behaviour per posttype or just manually from functions.php\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_dropdown_behaviour( $behaviour, $current_post_type) {\n\n    return $orderby;\n}\nadd_filter( 'beautiful_filters_dropdown_behaviour', 'modify_dropdown_behaviour', 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_dropdown_behaviour\u003C\u002Fh4>\n\u003Cp>$term_name is a string that have to be returned. $category is the term object. $depth is the level of depth for the current term starting at 0 (no parent).\u003Cbr \u002F>\nUse this to alter the output of the term name inside the dropdowns.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F\u002FAdd visual information when a terms are children\u002Fgrandchildren etc.\nadd_filter('beautiful_filters_term_name', 'custom_term_name', 10, 3);\nfunction custom_term_name($term_name, $category, $depth){\n\n    \u002F\u002FWe have indentation\n    if($depth !== 0){\n        $indent = '';\n        \u002F\u002FAdd one – for each step down the hierarchy, like WP does in admin.\n        for($i = 0; $i \u003C $depth; $i++){\n            $indent .= '–';\n        }\n        return $indent . ' ' . $term_name;\n    }\n    return $term_name;\n\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_taxonomy_label\u003C\u002Fh4>\n\u003Cp>$label is the name of the taxonomy used as label to the dropdown.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_labels($label){\n\n    return $label;\n}\n\nadd_filter('beautiful_filters_taxonomy_label', 'modify_labels', 10, 1);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_apply_button\u003C\u002Fh4>\n\u003Cp>$string is the default string of the apply filters button.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_filter_button($string){\n\n    return 'Hej världen';\n}\n\nadd_filter('beautiful_filters_apply_button', 'modify_filter_button', 10, 1);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_clear_button\u003C\u002Fh4>\n\u003Cp>$string is the default string of the apply filters button.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_clear_button($string){\n\n    return 'Hej världen';\n}\n\nadd_filter('beautiful_filters_clear_button', 'modify_clear_button', 10, 1);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_loader\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>function my_custom_loader( $loader, $taxonomy, $posttype ){\n\n    return $loader; \u002F\u002F $loader is an img tag\n\n}\nadd_filter('beautiful_filters_loader', 'my_custom_loader', 10, 3);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_active_terms\u003C\u002Fh4>\n\u003Cp>$terms is the terms string for the active filter info\u003Cbr \u002F>\n$taxonomy is the current taxonomy name\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_active_taxonomy($terms, $taxonomy){\n\n    return $terms;\n}\n\nadd_filter('beautiful_filters_active_terms', 'modify_active_taxonomy', 10, 2);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_disable_heading\u003C\u002Fh4>\n\u003Cp>$bool is a boolean of either true (hide filterinfo heading) or false (show filterinfo heading)\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function toggle_filterinfo_heading($bool){\n\n    return true;\n\n}\nadd_filter('beautiful_filters_disable_heading', 'toggle_filterinfo_heading');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_info_heading\u003C\u002Fh4>\n\u003Cp>$filter_heading is the default heading string\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_filter_heading($filter_heading){\n\n    $filter_heading = 'Hej världen';\n    return $filter_heading;\n\n}\nadd_filter('beautiful_filters_info_heading', 'modify_filter_heading');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_disable_postcount\u003C\u002Fh4>\n\u003Cp>$bool is a boolean of either true (hide filterinfo postcount) or false (show filterinfo postcount)\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function toggle_filterinfo_postcount($bool){\n\n    return true;\n\n}\nadd_filter('beautiful_filters_disable_postcount', 'toggle_filterinfo_postcount');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_info_postcount\u003C\u002Fh4>\n\u003Cp>$postcount_paragraph is the default postcount string. You MUST add %d somewhere in the new string in order for the resulting number to appear.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_filterinfo_postcount($postcount_paragraph){\n\n    return 'Hej världen ';\n\n}\nadd_filter('beautiful_filters_info_postcount', 'modify_filterinfo_postcount');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_new_url\u003C\u002Fh4>\n\u003Cp>Use this filter to manipulate the URL string of the filtered archive page that the visitor will be directed to.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function modify_new_url($url){\n\n    return $url . '?filtered=yes';\n\n}\nadd_filter('beautiful_filters_new_url', 'modify_new_url');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_selec2_minsearch\u003C\u002Fh4>\n\u003Cp>$min_search is an integer.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function change_minsearch_value($min_search){\n\n    \u002F\u002Falways show search\n    return 1;\n\n}\nadd_filter('beautiful_filters_selec2_minsearch', 'change_minsearch_value');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_filters_selec2_allowclear\u003C\u002Fh4>\n\u003Cp>$bool is a boolean value of either true of false. Setting this to false disables the ability to remove the selection with the x-icon.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function change_allowclear_value($bool){\n\n    \u002F\u002FDisables the allow clear.\n    return false;\n\n}\nadd_filter('beautiful_filters_selec2_allowclear', 'change_allowclear_value');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>**Actions**\u003C\u002Fh4>\n\u003Cp>These are the actions you may use to extend the filter component.\u003C\u002Fp>\n\u003Ch4>beautiful_actions_before_form\u003C\u002Fh4>\n\u003Cp>$current_post_type is the post type which the filter component are currently using. Use this variable as a conditional if needed.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function add_markup_before_form($current_post_type){\n\n    echo 'Hej världen';\n}\n\nadd_action('beautiful_actions_before_form', 'add_markup_before_form' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_actions_after_form\u003C\u002Fh4>\n\u003Cp>$current_post_type is the post type which the filter component are currently using. Use this variable as a conditional if needed.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function add_markup_after_form($current_post_type){\n\n    echo 'Hej världen';\n}\n\nadd_action('beautiful_actions_after_form', 'add_markup_after_form' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_actions_beginning_form\u003C\u002Fh4>\n\u003Cp>$current_post_type is the post type which the filter component are currently using. Use this variable as a conditional if needed.\u003Cbr \u002F>\nThis action is very usable if you for some reason need to add inputs to be send with the form\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function add_markup_beginning_form($current_post_type){\n\n    echo 'Hej världen';\n}\n\nadd_action('beautiful_actions_beginning_form', 'add_markup_beginning_form' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_actions_ending_form\u003C\u002Fh4>\n\u003Cp>$current_post_type is the post type which the filter component are currently using. Use this variable as a conditional if needed.\u003Cbr \u002F>\nThis action is very usable if you for some reason need to add inputs to be send with the form.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function add_markup_ending_form($current_post_type){\n\n    echo 'Hej världen';\n}\n\nadd_action('beautiful_actions_ending_form', 'add_markup_ending_form' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_actions_beginning_form_inner\u003C\u002Fh4>\n\u003Cp>$current_post_type is the post type which the filter component are currently using. Use this variable as a conditional if needed.\u003Cbr \u002F>\nThis action can be used to add inputs etc to the beginning of the inner div of the filter module.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function add_markup_beginning_form_inner($current_post_type){\n\n    echo 'Hej världen';\n}\n\nadd_action('beautiful_actions_beginning_form_inner', 'add_markup_beginning_form_inner' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_actions_ending_form_inner\u003C\u002Fh4>\n\u003Cp>$current_post_type is the post type which the filter component are currently using. Use this variable as a conditional if needed.\u003Cbr \u002F>\nThis action can be used to add inputs etc to the end of the inner div of the filter module.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function add_markup_ending_form_inner($current_post_type){\n\n    echo 'Hej världen';\n}\n\nadd_action('beautiful_actions_ending_form_inner', 'add_markup_ending_form_inner' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_actions_before_redirection\u003C\u002Fh4>\n\u003Cp>$current_post_type is the post type which the filter component are currently using. Use this variable as a conditional if needed.\u003Cbr \u002F>\nThis action can be used to add your own stuff or manipulate something before the page is redirected to the new filtered page but after the page has reloaded.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function custom_stuff_before_redirection($current_post_type){\n\n    echo 'Hej världen';\n}\n\nadd_action('beautiful_actions_before_redirection', 'custom_stuff_before_redirection' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_actions_beginning_filterinfo\u003C\u002Fh4>\n\u003Cp>$current_post_type is the post type which the filterinfo component are currently using. Use this variable as a conditional if needed.\u003Cbr \u002F>\nThis action is very usable if you for some reason need to add markup at the beginning of the filterinfo module\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function add_markup_beginning_filterinfo($current_post_type){\n\n    echo 'Hej världen';\n}\n\nadd_action('beautiful_actions_beginning_filterinfo', 'add_markup_beginning_filterinfo' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>beautiful_actions_ending_filterinfo\u003C\u002Fh4>\n\u003Cp>$current_post_type is the post type which the filterinfo component are currently using. Use this variable as a conditional if needed.\u003Cbr \u002F>\nThis action is very usable if you for some reason need to add markup at the end of the filterinfo module\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function add_markup_ending_filterinfo($current_post_type){\n\n    echo 'Hej världen';\n}\n\nadd_action('beautiful_actions_ending_filterinfo', 'add_markup_ending_filterinfo' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Supercharge your custom post type archives by letting visitors filter posts by their terms\u002Fcategories. This plugin handles the whole thing for you!",3000,152123,98,68,"2025-12-05T13:01:00.000Z","6.9.4","4.3.0","",[20,21,22,23,24],"filter","pretty-permalinks","taxonomy","terms","widget","https:\u002F\u002Fjonte.dev","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbeautiful-taxonomy-filters.2.4.6.zip",1,0,"2024-12-06 21:20:23","2026-03-15T15:16:48.613Z",[32],{"id":33,"url_slug":34,"title":35,"description":36,"plugin_slug":4,"theme_slug":37,"affected_versions":38,"patched_in_version":39,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":29,"updated_date":44,"references":45,"days_to_patch":47},"CVE-2024-12270","beautiful-taxonomy-filters-unauthenticated-sql-injection","Beautiful Taxonomy Filters \u003C= 2.4.3 - Unauthenticated SQL Injection","The Beautiful taxonomy filters plugin for WordPress is vulnerable to SQL Injection via the 'selects[0][term]' parameter in all versions up to, and including, 2.4.3 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query.  This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.",null,"\u003C=2.4.3","2.4.4","high",7.5,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:H\u002FI:N\u002FA:N","Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')","2025-11-05 18:54:01",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F75c9c106-d1f9-43ee-be1f-3eddec8f2529?source=api-prod",334,{"slug":49,"display_name":7,"profile_url":8,"plugin_count":50,"total_installs":51,"avg_security_score":52,"avg_patch_time_days":47,"trust_score":53,"computed_at":54},"jonathandejong",2,3010,99,78,"2026-04-04T15:26:57.439Z",[56,79,97,113,135],{"slug":57,"name":58,"version":59,"author":60,"author_profile":61,"description":62,"short_description":63,"active_installs":64,"downloaded":65,"rating":66,"num_ratings":67,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":18,"tags":71,"homepage":76,"download_link":77,"security_score":78,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"taxonomy-term-widget","Taxonomy Term Widget","2.3.5","AddonsPress","https:\u002F\u002Fprofiles.wordpress.org\u002Faddonspress\u002F","\u003Cp>If you have already familiar with the Categories widget, then You are already familiar with it too.\u003Cbr \u002F>\nIt just lets you choose any taxonomy you have in your blog, for example, Tags, custom taxonomy ( Eg: Location, Product Categories, Product Tags etc… ).\u003C\u002Fp>\n","Add an advanced widget to your WordPress blog, like an extension of the Categories widget.",300,9253,100,4,"2024-11-12T14:34:00.000Z","6.7.5","3.0",[72,73,22,74,75],"categories-widget","custom-taxonomy-widget","terms-widget","wordpress-taxonomy-term-widget","https:\u002F\u002Fwww.addonspress.com\u002Fwordpress-plugins\u002Ftaxonomy-term-widget\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftaxonomy-term-widget.2.3.5.zip",92,{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":28,"num_ratings":28,"last_updated":89,"tested_up_to":90,"requires_at_least":70,"requires_php":18,"tags":91,"homepage":94,"download_link":95,"security_score":96,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"posts-by-taxonomy-widget","Posts By Taxonomy Widget","1.0.3","Pippin Williamson","https:\u002F\u002Fprofiles.wordpress.org\u002Fmordauk\u002F","\u003Cp>This plugin will provide a widget that allows you to display a list of terms from any custom (or built-in) taxonomy with a list of recent posts filed in each term. The terms are displayed in a list with each term’s posts shown in a nested list.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Widget Title\u003C\u002Fli>\n\u003Cli>Taxonomy to pull terms from\u003C\u002Fli>\n\u003Cli>Number of posts to show per term\u003C\u002Fli>\n\u003Cli>Multiple instances of the widget\u003C\u002Fli>\n\u003C\u002Fol>\n","Display a list of taxonomy terms with recent posts in those terms in a simple to use widget",20,4078,"2013-03-07T00:11:00.000Z","3.5.2",[92,22,23,24,93],"recent-posts","widgets","http:\u002F\u002Fpippinsplugins.com\u002Fposts-by-taxonomy-widget-plugin-free","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fposts-by-taxonomy-widget.1.0.3.zip",85,{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":28,"downloaded":105,"rating":28,"num_ratings":28,"last_updated":106,"tested_up_to":107,"requires_at_least":108,"requires_php":18,"tags":109,"homepage":111,"download_link":112,"security_score":96,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"gimme-filter","Gimme Filter","1.0","kirillantv","https:\u002F\u002Fprofiles.wordpress.org\u002Fkirillantv\u002F","\u003Cp>Flexible and simple taxonomy filter. Easily to configurate it.\u003C\u002Fp>\n\u003Cp>Feauters:\u003C\u002Fp>\n\u003Col>\n\u003Cli>You can select type of output. Available types: checkbox, dropdown and radio.\u003C\u002Fli>\n\u003Cli>Also you can activate actual taxonomies terms. It lets you get terms that are actual only at the current page of your site\u003C\u002Fli>\n\u003Cli>You can select the place where you wanna see filter. It may be widget’s sidebar or your custom place\u003C\u002Fli>\n\u003C\u002Fol>\n","Flexible and simple WordPress taxonomy filter",1107,"2017-04-25T20:19:00.000Z","3.4.2","3.0.1",[110,20,22],"actual-terms","http:\u002F\u002F-","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgimme-filter.zip",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":121,"downloaded":122,"rating":123,"num_ratings":124,"last_updated":125,"tested_up_to":16,"requires_at_least":126,"requires_php":18,"tags":127,"homepage":132,"download_link":133,"security_score":52,"vuln_count":50,"unpatched_count":28,"last_vuln_date":134,"fetched_at":30},"taxonomy-terms-order","Category Order and Taxonomy Terms Order","1.9.4","nsp-code","https:\u002F\u002Fprofiles.wordpress.org\u002Fnsp-code\u002F","\u003Cp>Easily control the order of Categories and any hierarchical taxonomy with a simple drag-and-drop interface. Reorder parent and child terms visually in the admin and choose whether the plugin automatically applies your custom term order to front-end queries.\u003C\u002Fp>\n\u003Ch3>Key features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Intuitive drag-and-drop reordering for Categories and all hierarchical taxonomies. \u003C\u002Fli>\n\u003Cli>Option to auto-apply the custom term order to front-end queries (no theme\u002Fplugin edits required). \u003C\u002Fli>\n\u003Cli>Keep the admin term lists in your new order (makes management and editorial workflows consistent). \u003C\u002Fli>\n\u003Cli>Works with multiple taxonomies per post type — switch between taxonomies from the same interface. \u003C\u002Fli>\n\u003Cli>Multisite aware and regularly updated for modern WordPress and PHP versions (see changelog for compatibility notes).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How it works\u003C\u002Fh3>\n\u003Cp>After activating the plugin, a new Taxonomy Order page becomes available under the custom post type menu. Simply open it and drag terms into the exact order you want — including parent\u002Fchild hierarchy.\u003Cbr \u002F>\nUse the plugin’s Taxonomy Order screen to drag terms into the order you want. To apply the custom order automatically across your site, enable the Autosort option — the plugin will adjust term queries on the fly so your chosen order shows without template changes. If you prefer to control ordering in code, include orderby => ‘term_order’ when calling get_terms() to use the plugin’s order programmatically.\u003C\u002Fp>\n\u003Cp>This plugin is developed by \u003Ca href=\"http:\u002F\u002Fwww.nsp-code.com\" rel=\"nofollow ugc\">Nsp-Code\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>See the \u003Ca href=\"https:\u002F\u002Fwww.nsp-code.com\u002Fpremium-plugins\u002Fwordpress-plugins\u002Fadvanced-taxonomy-terms-order\u002F\" rel=\"nofollow ugc\">Advanced Taxonomy Terms Order\u003C\u002Fa> for advanced features.\u003C\u002Fp>\n\u003Ch3>Localization\u003C\u002Fh3>\n\u003Cp>Available in Catalan, Chinese (China), Chinese (Taiwan), Czech, Dutch, Dutch (Belgium), English (Australia), English (Canada), English (New Zealand), English (UK), English (US), French (France), Galician, German, Italian, Japanese, Norwegian (Bokmål), Polish, Portuguese (Portugal), Russian, Spanish (Chile), Spanish (Spain), Spanish (Venezuela), Swedish, and Turkish.\u003Cbr \u002F>\nWhant to contribute with a translation to your language? Please check at https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Ftaxonomy-terms-order\u003C\u002Fp>\n\u003Cp>There isn’t any Editors for your native language on plugin Contributors? You can help to moderate! https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Ftaxonomy-terms-order\u002Fcontributors\u003C\u002Fp>\n","Drag-and-drop ordering for Categories & any taxonomy (hierarchically) using a Drag and Drop Sortable JavaScript capability.",500000,9896783,90,162,"2026-02-19T17:40:00.000Z","2.8",[128,129,130,131],"categories-sort","category-order","taxonomy-order","terms-order","http:\u002F\u002Fwww.nsp-code.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftaxonomy-terms-order.1.9.4.zip","2018-02-22 00:00:00",{"slug":136,"name":137,"version":138,"author":139,"author_profile":140,"description":141,"short_description":142,"active_installs":143,"downloaded":144,"rating":123,"num_ratings":145,"last_updated":146,"tested_up_to":16,"requires_at_least":147,"requires_php":18,"tags":148,"homepage":152,"download_link":153,"security_score":13,"vuln_count":50,"unpatched_count":28,"last_vuln_date":154,"fetched_at":30},"search-filter","Search & Filter","1.2.18","Code Amp","https:\u002F\u002Fprofiles.wordpress.org\u002Fcodeamp\u002F","\u003Cp>Search & Filter is a simple search and filtering plugin for WordPress – it is an advancement of the WordPress search box.\u003C\u002Fp>\n\u003Cp>You can search by Category, Tag, Custom Taxonomy, Post Type, Post Date or any combination of these easily to really refine your searches – remove the search box and use it as a filtering system for your posts and pages.  Fields can be displayed as dropdowns, checkboxes, radio buttons or multi selects.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Links:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Ffree.searchandfilter.com\u002F?utm_campaign=wordpress.org&utm_source=wordpress.org&utm_medium=docslink\" rel=\"nofollow ugc\">Search & Filter Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fsearchandfilter\u002F\" rel=\"nofollow ugc\">Follow us on Twitter\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Get more features with Search & Filter Pro\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdemo.searchandfilter.com\u002F?utm_campaign=wordpress.org&utm_source=wordpress.org&utm_medium=demolink\" rel=\"nofollow ugc\">View live demo >>\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Search \u003Cstrong>Custom Fields\u003C\u002Fstrong>, \u003Cstrong>Post Meta\u003C\u002Fstrong>, \u003Cstrong>Authors\u003C\u002Fstrong>, Post Types, Post Dates, Taxonomies, Tags, Categories\u003C\u002Fli>\n\u003Cli>Use \u003Cstrong>AJAX\u003C\u002Fstrong> to display results  – no more page reloading!\u003C\u002Fli>\n\u003Cli>Search \u003Cstrong>Post Meta\u002FCustom Fields\u003C\u002Fstrong> with checkboxes, radio buttons, dropdowns, multiselects or comboboxes\u003C\u002Fli>\n\u003Cli>jQuery range slider, date pickers and \u003Cstrong>auto-complete comboboxes\u003C\u002Fstrong> for selects and multiselects\u003C\u002Fli>\n\u003Cli>Order Results Field – users can order results by meta value, Post ID, author, title, name, date, date modified, parent ID, random, comment count and menu order\u003C\u002Fli>\n\u003Cli>Drag & Drop editor\u003C\u002Fli>\n\u003Cli>Use custom templates\u003C\u002Fli>\n\u003Cli>Create as many fields and different search forms as you like\u003C\u002Fli>\n\u003Cli>Use for blogs, reviews sites, news sites, property sites and more.\u003C\u002Fli>\n\u003Cli>Use for your online shop – tested and compatible with \u003Cstrong>WooCommerce\u003C\u002Fstrong>, \u003Cstrong>WP eCommerce\u003C\u002Fstrong>, \u003Cstrong>Easy Digital Downloads\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Place anywhere in your themes and posts using shortcodes and widgets\u003C\u002Fli>\n\u003Cli>Works with \u003Cstrong>WPML\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Works with \u003Cstrong>Advanced Custom Fields\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Extremely easy to use admin UI, fully integrated with WP 3.8+\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dedicated Support\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fsearchandfilter.com\u002F?utm_campaign=wordpress.org&utm_source=wordpress.org&utm_medium=textlink\" rel=\"nofollow ugc\">More info >>\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Search and Filtering for Custom Posts, Categories, Tags, Taxonomies, Post Dates and Post Types",50000,946770,174,"2025-12-14T20:48:00.000Z","3.5",[149,20,150,151,22],"category","search","tag","https:\u002F\u002Ffree.searchandfilter.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsearch-filter.1.2.18.zip","2025-10-07 00:00:00",{"attackSurface":156,"codeSignals":228,"taintFlows":284,"riskAssessment":329,"analyzedAt":338},{"hooks":157,"ajaxHandlers":210,"restRoutes":218,"shortcodes":219,"cronEvents":227,"entryPointCount":67,"unprotectedCount":50},[158,164,167,170,173,176,178,181,184,187,189,192,195,198,201,204,207],{"type":159,"name":160,"callback":161,"file":162,"line":163},"action","plugins_loaded","anonymous","includes\\class-beautiful-taxonomy-filters.php",170,{"type":159,"name":165,"callback":161,"file":162,"line":166},"admin_enqueue_scripts",185,{"type":159,"name":168,"callback":161,"file":162,"line":169},"generate_rewrite_rules",186,{"type":159,"name":171,"callback":161,"file":162,"line":172},"admin_menu",187,{"type":159,"name":174,"callback":161,"file":162,"line":175},"admin_init",188,{"type":159,"name":174,"callback":161,"file":162,"line":177},189,{"type":159,"name":179,"callback":161,"file":162,"line":180},"widgets_init",190,{"type":159,"name":182,"callback":161,"file":162,"line":183},"admin_notices",191,{"type":159,"name":185,"callback":161,"file":162,"line":186},"wp_enqueue_scripts",206,{"type":159,"name":185,"callback":161,"file":162,"line":188},207,{"type":159,"name":190,"callback":161,"file":162,"line":191},"wp_head",208,{"type":159,"name":193,"callback":161,"file":162,"line":194},"loop_start",209,{"type":20,"name":196,"callback":161,"file":162,"line":197},"wp_dropdown_cats",210,{"type":20,"name":199,"callback":161,"file":162,"line":200},"template_redirect",211,{"type":20,"name":202,"callback":161,"file":162,"line":203},"body_class",214,{"type":159,"name":205,"callback":161,"file":162,"line":206},"show_beautiful_filters",217,{"type":159,"name":208,"callback":161,"file":162,"line":209},"show_beautiful_filters_info",218,[211,215],{"action":212,"nopriv":213,"callback":161,"hasNonce":213,"hasCapCheck":213,"file":162,"line":214},"update_filters_callback",false,212,{"action":212,"nopriv":216,"callback":161,"hasNonce":213,"hasCapCheck":213,"file":162,"line":217},true,213,[],[220,224],{"tag":205,"callback":221,"file":222,"line":223},"shortcode_beautiful_filters","public\\class-beautiful-taxonomy-filters-shortcodes.php",46,{"tag":208,"callback":225,"file":222,"line":226},"shortcode_beautiful_filters_info",47,[],{"dangerousFunctions":229,"sqlUsage":230,"outputEscaping":233,"fileOperations":28,"externalRequests":28,"nonceChecks":50,"capabilityChecks":28,"bundledLibraries":280},[],{"prepared":231,"raw":28,"locations":232},3,[],{"escaped":234,"rawEcho":235,"locations":236},235,19,[237,241,243,246,249,251,254,256,258,260,262,264,266,268,271,273,275,276,278],{"file":238,"line":239,"context":240},"admin\\partials\\about\\about.php",8,"raw output",{"file":238,"line":242,"context":240},16,{"file":244,"line":245,"context":240},"admin\\partials\\help\\help.php",27,{"file":247,"line":248,"context":240},"public\\class-beautiful-taxonomy-filters-public.php",158,{"file":247,"line":250,"context":240},378,{"file":252,"line":253,"context":240},"public\\partials\\beautiful-taxonomy-filters-public-display.php",96,{"file":252,"line":255,"context":240},103,{"file":252,"line":257,"context":240},111,{"file":252,"line":259,"context":240},123,{"file":261,"line":96,"context":240},"widgets\\beautiful-taxonomy-filters-info-widget.php",{"file":261,"line":263,"context":240},87,{"file":261,"line":265,"context":240},95,{"file":261,"line":267,"context":240},227,{"file":269,"line":270,"context":240},"widgets\\beautiful-taxonomy-filters-widget.php",236,{"file":269,"line":272,"context":240},237,{"file":269,"line":274,"context":240},294,{"file":269,"line":64,"context":240},{"file":269,"line":277,"context":240},306,{"file":269,"line":279,"context":240},326,[281],{"name":282,"version":37,"knownCves":283},"Select2",[],[285,303,316],{"entryPoint":286,"graph":287,"unsanitizedCount":28,"severity":302},"update_filters_callback (public\\class-beautiful-taxonomy-filters-public.php:278)",{"nodes":288,"edges":300},[289,294],{"id":290,"type":291,"label":292,"file":247,"line":293},"n0","source","$_REQUEST",288,{"id":295,"type":296,"label":297,"file":247,"line":298,"wp_function":299},"n1","sink","get_results() [SQLi]",368,"get_results",[301],{"from":290,"to":295,"sanitized":216},"low",{"entryPoint":304,"graph":305,"unsanitizedCount":28,"severity":302},"catch_filter_values (public\\class-beautiful-taxonomy-filters-public.php:390)",{"nodes":306,"edges":314},[307,310],{"id":290,"type":291,"label":308,"file":247,"line":309},"$_POST",420,{"id":295,"type":296,"label":311,"file":247,"line":312,"wp_function":313},"wp_redirect() [Open Redirect]",443,"wp_redirect",[315],{"from":290,"to":295,"sanitized":216},{"entryPoint":317,"graph":318,"unsanitizedCount":28,"severity":302},"\u003Cclass-beautiful-taxonomy-filters-public> (public\\class-beautiful-taxonomy-filters-public.php:0)",{"nodes":319,"edges":326},[320,321,322,324],{"id":290,"type":291,"label":292,"file":247,"line":293},{"id":295,"type":296,"label":297,"file":247,"line":298,"wp_function":299},{"id":323,"type":291,"label":308,"file":247,"line":309},"n2",{"id":325,"type":296,"label":311,"file":247,"line":312,"wp_function":313},"n3",[327,328],{"from":290,"to":295,"sanitized":216},{"from":323,"to":325,"sanitized":216},{"summary":330,"deductions":331},"The \"beautiful-taxonomy-filters\" plugin v2.4.6 exhibits a mixed security posture.  On the positive side, the plugin demonstrates good practices by using prepared statements for all SQL queries, has a high percentage of properly escaped output, and no file operations or external HTTP requests are present.  The taint analysis also reveals no critical or high severity issues, indicating a generally safe code base regarding data sanitization for paths and commands.\n\nHowever, significant concerns arise from the attack surface.  Two of the four identified entry points are AJAX handlers that lack authentication checks, presenting a direct risk of unauthorized access or execution of potentially sensitive functions.  While the plugin has a history of known vulnerabilities, specifically one high-severity SQL injection, it's currently unpatched. This history, combined with the unprotected AJAX handlers, suggests a potential for attackers to exploit weaknesses if they emerge.\n\nIn conclusion, while the plugin has strengths in data handling and sanitization, the unprotected AJAX endpoints and a recent high-severity SQL injection vulnerability in its history warrant caution.  The lack of authentication on these critical entry points is a notable weakness that could be leveraged in conjunction with discovered vulnerabilities.",[332,335],{"reason":333,"points":334},"Unprotected AJAX handlers",10,{"reason":336,"points":337},"High severity vulnerability in history (unpatched)",15,"2026-03-16T18:26:43.259Z",{"wat":340,"direct":351},{"assetPaths":341,"generatorPatterns":345,"scriptPaths":346,"versionParams":347},[342,343,344],"\u002Fwp-content\u002Fplugins\u002Fbeautiful-taxonomy-filters\u002Fcss\u002Fbeautiful-taxonomy-filters-admin.css","\u002Fwp-content\u002Fplugins\u002Fbeautiful-taxonomy-filters\u002Fpublic\u002Fcss\u002Fbeautiful-taxonomy-filters-public.css","\u002Fwp-content\u002Fplugins\u002Fbeautiful-taxonomy-filters\u002Fpublic\u002Fjs\u002Fbeautiful-taxonomy-filters-public.js",[],[344],[348,349,350],"beautiful-taxonomy-filters\u002Fcss\u002Fbeautiful-taxonomy-filters-admin.css?ver=","beautiful-taxonomy-filters\u002Fcss\u002Fbeautiful-taxonomy-filters-public.css?ver=","beautiful-taxonomy-filters\u002Fjs\u002Fbeautiful-taxonomy-filters-public.js?ver=",{"cssClasses":352,"htmlComments":359,"htmlAttributes":362,"restEndpoints":366,"jsGlobals":368,"shortcodeOutput":370},[353,354,355,356,357,358],"btf-filter-container","btf-filter-dropdown","btf-filter-multiselect","btf-filter-checkbox","btf-filter-radio","btf-filter-search",[360,361],"\u003C!-- Beautiful Taxonomy Filters -->","\u003C!-- END Beautiful Taxonomy Filters -->",[363,364,365],"data-btf-filter","data-btf-taxonomy","data-btf-post-type",[367],"\u002Fwp-json\u002Fbtf\u002Fv1\u002Ffilters",[369],"btf_public_ajax_object",[371],"[beautiful_taxonomy_filters]"]