{"id":130947,"date":"2020-10-31T05:23:04","date_gmt":"2020-10-31T05:23:04","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/category-ajax-filter\/"},"modified":"2026-08-26T09:04:59","modified_gmt":"2026-08-26T09:04:59","slug":"category-ajax-filter","status":"publish","type":"plugin","link":"https:\/\/bal.wordpress.org\/plugins\/category-ajax-filter\/","author":17874738,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.0.1","stable_tag":"3.0.1","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Category AJAX Filter \u2013 Posts, Custom Post Types & Product Filter","header_author":"Trusty Plugins","header_description":"Add ajax functionality to your posts\/custom post types to filter with categories\/taxonomy with many pre-build layouts.","assets_banners_color":"ebe9e5","last_updated":"2026-08-26 09:04:59","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.buymeacoffee.com\/jasveer","header_plugin_uri":"","header_author_uri":"https:\/\/trustyplugins.com","rating":4.9,"author_block_rating":0,"active_installs":6000,"downloads":209841,"num_ratings":153,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"trustyplugins","date":"2020-11-03 11:41:17"},"1.1":{"tag":"1.1","author":"trustyplugins","date":"2020-11-18 06:13:51"},"1.2":{"tag":"1.2","author":"trustyplugins","date":"2020-11-24 07:16:37"},"1.3":{"tag":"1.3","author":"trustyplugins","date":"2020-12-11 12:23:13"},"1.4":{"tag":"1.4","author":"trustyplugins","date":"2021-01-14 14:34:43"},"1.4.2":{"tag":"1.4.2","author":"trustyplugins","date":"2021-01-27 05:47:13"},"1.4.3":{"tag":"1.4.3","author":"trustyplugins","date":"2021-01-27 17:03:04"},"1.4.4":{"tag":"1.4.4","author":"trustyplugins","date":"2021-02-06 16:15:33"},"1.4.5":{"tag":"1.4.5","author":"trustyplugins","date":"2021-02-25 12:56:55"},"1.4.6":{"tag":"1.4.6","author":"trustyplugins","date":"2021-02-26 16:59:09"},"1.4.7":{"tag":"1.4.7","author":"trustyplugins","date":"2021-02-28 03:00:25"},"1.4.8":{"tag":"1.4.8","author":"trustyplugins","date":"2021-03-01 06:01:01"},"1.4.9":{"tag":"1.4.9","author":"trustyplugins","date":"2021-03-08 12:12:34"},"1.5":{"tag":"1.5","author":"trustyplugins","date":"2021-03-09 12:53:57"},"1.5.1":{"tag":"1.5.1","author":"trustyplugins","date":"2021-03-16 05:36:43"},"1.5.2":{"tag":"1.5.2","author":"trustyplugins","date":"2021-03-16 06:12:30"},"1.5.3":{"tag":"1.5.3","author":"trustyplugins","date":"2021-04-01 11:09:52"},"1.5.4":{"tag":"1.5.4","author":"trustyplugins","date":"2021-04-03 06:10:40"},"1.5.5":{"tag":"1.5.5","author":"trustyplugins","date":"2021-04-09 13:09:58"},"1.5.6":{"tag":"1.5.6","author":"trustyplugins","date":"2021-04-17 08:38:21"},"1.6":{"tag":"1.6","author":"trustyplugins","date":"2021-04-17 08:51:20"},"1.6.5":{"tag":"1.6.5","author":"trustyplugins","date":"2021-05-02 11:07:46"},"1.6.6":{"tag":"1.6.6","author":"trustyplugins","date":"2021-05-07 07:23:20"},"1.6.7":{"tag":"1.6.7","author":"trustyplugins","date":"2021-05-07 16:13:18"},"1.6.8":{"tag":"1.6.8","author":"trustyplugins","date":"2021-05-10 08:35:34"},"1.6.9":{"tag":"1.6.9","author":"trustyplugins","date":"2021-05-12 07:57:39"},"1.7":{"tag":"1.7","author":"trustyplugins","date":"2021-05-14 11:07:44"},"1.7.1":{"tag":"1.7.1","author":"trustyplugins","date":"2021-05-18 04:53:52"},"1.8":{"tag":"1.8","author":"trustyplugins","date":"2021-06-28 10:33:31"},"1.8.1":{"tag":"1.8.1","author":"trustyplugins","date":"2021-07-09 06:28:44"},"1.8.2":{"tag":"1.8.2","author":"trustyplugins","date":"2021-07-09 08:05:39"},"1.8.3":{"tag":"1.8.3","author":"trustyplugins","date":"2021-07-23 08:06:10"},"1.8.4":{"tag":"1.8.4","author":"trustyplugins","date":"2021-07-26 05:46:42"},"1.8.5":{"tag":"1.8.5","author":"trustyplugins","date":"2021-07-30 08:40:58"},"1.8.6":{"tag":"1.8.6","author":"trustyplugins","date":"2021-08-25 06:03:00"},"1.8.7":{"tag":"1.8.7","author":"trustyplugins","date":"2021-08-28 07:59:22"},"1.8.8":{"tag":"1.8.8","author":"trustyplugins","date":"2021-09-04 04:16:43"},"1.8.9":{"tag":"1.8.9","author":"trustyplugins","date":"2021-11-29 09:48:46"},"1.9":{"tag":"1.9","author":"trustyplugins","date":"2022-01-12 11:11:00"},"1.9.1":{"tag":"1.9.1","author":"trustyplugins","date":"2022-01-12 13:41:13"},"1.9.2":{"tag":"1.9.2","author":"trustyplugins","date":"2022-01-24 08:24:08"},"1.9.3":{"tag":"1.9.3","author":"trustyplugins","date":"2022-02-04 10:19:15"},"1.9.4":{"tag":"1.9.4","author":"trustyplugins","date":"2022-02-05 08:52:12"},"1.9.5":{"tag":"1.9.5","author":"trustyplugins","date":"2022-02-08 07:03:03"},"1.9.6":{"tag":"1.9.6","author":"trustyplugins","date":"2022-02-24 06:42:41"},"1.9.7":{"tag":"1.9.7","author":"trustyplugins","date":"2022-03-02 11:33:59"},"1.9.8":{"tag":"1.9.8","author":"trustyplugins","date":"2022-03-02 17:01:58"},"2.0":{"tag":"2.0","author":"trustyplugins","date":"2022-03-03 11:46:41"},"2.1":{"tag":"2.1","author":"trustyplugins","date":"2022-03-08 12:57:59"},"2.2":{"tag":"2.2","author":"trustyplugins","date":"2022-03-09 10:49:34"},"2.3":{"tag":"2.3","author":"trustyplugins","date":"2022-03-15 06:28:26"},"2.4":{"tag":"2.4","author":"trustyplugins","date":"2022-04-01 12:39:21"},"2.5":{"tag":"2.5","author":"trustyplugins","date":"2022-05-25 06:39:13"},"2.5.1":{"tag":"2.5.1","author":"trustyplugins","date":"2022-07-01 07:47:50"},"2.6":{"tag":"2.6","author":"trustyplugins","date":"2022-07-26 12:01:04"},"2.6.2":{"tag":"2.6.2","author":"trustyplugins","date":"2022-07-27 08:27:13"},"2.6.3":{"tag":"2.6.3","author":"trustyplugins","date":"2022-07-28 10:35:16"},"2.6.4":{"tag":"2.6.4","author":"trustyplugins","date":"2022-07-28 11:12:59"},"2.6.5":{"tag":"2.6.5","author":"trustyplugins","date":"2022-12-23 12:00:02"},"2.6.6":{"tag":"2.6.6","author":"trustyplugins","date":"2023-01-06 06:32:56"},"2.6.7":{"tag":"2.6.7","author":"trustyplugins","date":"2023-02-01 06:58:33"},"2.7":{"tag":"2.7","author":"trustyplugins","date":"2023-05-03 06:28:09"},"2.7.1":{"tag":"2.7.1","author":"trustyplugins","date":"2023-05-17 12:36:56"},"2.7.2":{"tag":"2.7.2","author":"trustyplugins","date":"2023-05-22 07:37:10"},"2.7.2.1":{"tag":"2.7.2.1","author":"trustyplugins","date":"2023-06-20 12:31:14"},"2.7.2.2":{"tag":"2.7.2.2","author":"trustyplugins","date":"2024-02-15 10:14:28"},"2.7.2.3":{"tag":"2.7.2.3","author":"trustyplugins","date":"2024-02-19 05:53:41"},"2.8":{"tag":"2.8","author":"trustyplugins","date":"2024-04-10 07:19:43"},"2.8.1":{"tag":"2.8.1","author":"trustyplugins","date":"2024-04-11 10:41:35"},"2.8.2":{"tag":"2.8.2","author":"trustyplugins","date":"2024-07-17 08:44:31"},"2.8.3":{"tag":"2.8.3","author":"trustyplugins","date":"2025-06-19 04:49:09"},"2.8.4":{"tag":"2.8.4","author":"trustyplugins","date":"2025-07-08 07:04:08"},"2.8.4.1":{"tag":"2.8.4.1","author":"trustyplugins","date":"2026-03-10 12:28:38"},"2.8.5":{"tag":"2.8.5","author":"trustyplugins","date":"2026-05-25 11:47:08"},"2.8.5.1":{"tag":"2.8.5.1","author":"trustyplugins","date":"2026-06-08 11:34:49"},"2.8.5.2":{"tag":"2.8.5.2","author":"trustyplugins","date":"2026-07-24 11:11:09"},"2.9.0":{"tag":"2.9.0","author":"trustyplugins","date":"2026-08-06 09:16:02"},"2.9.1":{"tag":"2.9.1","author":"trustyplugins","date":"2026-08-17 06:55:05"},"3.0.0":{"tag":"3.0.0","author":"trustyplugins","date":"2026-08-20 06:16:45"},"3.0.1":{"tag":"3.0.1","author":"trustyplugins","date":"2026-08-26 09:04:59"}},"upgrade_notice":{"3.0.0":"<p>Major update \u2014 new drag &amp; drop CAF Builder, WooCommerce product filtering, import library and WordPress 7.1 compatibility. The Classic Panel remains fully supported.<\/p>"},"ratings":{"1":4,"2":0,"3":0,"4":0,"5":149},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":2410607,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3655954,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3655954,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3666624,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/edit.php?post_type=caf_posts&builder=1\",\"preferredVersions\":{\"php\":\"8.0\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"category-ajax-filter\"}},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire_once 'wordpress\\\/wp-load.php';\\n\\nif ( get_option( 'caf_wporg_preview_seeded' ) ) {\\n\\treturn;\\n}\\n\\n$caf_preview_mu_plugin = <<<'CAF_MU_PLUGIN'\\n<?php\\n\\\/**\\n * CAF WordPress.org Live Preview - Recipe CPT + taxonomies.\\n * Loaded as an mu-plugin so the CPT survives after the blueprint seed request.\\n *\\\/\\nif ( ! defined( 'ABSPATH' ) ) {\\n\\texit;\\n}\\n\\nfunction caf_preview_register_recipe_cpt() {\\n\\tif ( ! post_type_exists( 'recipe' ) ) {\\n\\t\\tregister_post_type(\\n\\t\\t\\t'recipe',\\n\\t\\t\\tarray(\\n\\t\\t\\t\\t'label'        => 'Recipes',\\n\\t\\t\\t\\t'labels'       => array(\\n\\t\\t\\t\\t\\t'name'          => 'Recipes',\\n\\t\\t\\t\\t\\t'singular_name' => 'Recipe',\\n\\t\\t\\t\\t\\t'add_new_item'  => 'Add New Recipe',\\n\\t\\t\\t\\t\\t'edit_item'     => 'Edit Recipe',\\n\\t\\t\\t\\t\\t'search_items'  => 'Search Recipes',\\n\\t\\t\\t\\t),\\n\\t\\t\\t\\t'public'       => true,\\n\\t\\t\\t\\t'has_archive'  => true,\\n\\t\\t\\t\\t'show_in_rest' => true,\\n\\t\\t\\t\\t'menu_icon'    => 'dashicons-carrot',\\n\\t\\t\\t\\t'supports'     => array( 'title', 'editor', 'excerpt', 'thumbnail' ),\\n\\t\\t\\t)\\n\\t\\t);\\n\\t}\\n\\n\\t$taxes = array(\\n\\t\\t'cuisine'         => 'Cuisines',\\n\\t\\t'meal-type'       => 'Meal Types',\\n\\t\\t'diet-type'       => 'Diet Types',\\n\\t\\t'cooking-method'  => 'Cooking Methods',\\n\\t\\t'prep-time'       => 'Prep Times',\\n\\t);\\n\\n\\tforeach ( $taxes as $tax => $label ) {\\n\\t\\tif ( taxonomy_exists( $tax ) ) {\\n\\t\\t\\tcontinue;\\n\\t\\t}\\n\\t\\tregister_taxonomy(\\n\\t\\t\\t$tax,\\n\\t\\t\\t'recipe',\\n\\t\\t\\tarray(\\n\\t\\t\\t\\t'label'        => $label,\\n\\t\\t\\t\\t'public'       => true,\\n\\t\\t\\t\\t'hierarchical' => true,\\n\\t\\t\\t\\t'show_in_rest' => true,\\n\\t\\t\\t)\\n\\t\\t);\\n\\t}\\n}\\nadd_action( 'init', 'caf_preview_register_recipe_cpt', 0 );\\nCAF_MU_PLUGIN;\\n\\n\\nupdate_option( 'blogname', 'CAF Builder Preview' );\\nupdate_option( 'permalink_structure', '\\\/%postname%\\\/' );\\nupdate_option( 'blogdescription', 'Try the CAF Builder with posts, recipes, and WooCommerce products.' );\\n\\ndelete_transient( '_wc_activation_redirect' );\\nupdate_option(\\n\\t'woocommerce_onboarding_profile',\\n\\tarray(\\n\\t\\t'skipped'   => true,\\n\\t\\t'completed' => true,\\n\\t)\\n);\\nupdate_option( 'woocommerce_task_list_hidden', 'yes' );\\nupdate_option( 'woocommerce_task_list_complete', 'yes' );\\nupdate_option( 'woocommerce_coming_soon', 'no' );\\nupdate_option( 'woocommerce_store_pages_only', 'no' );\\nupdate_option( 'woocommerce_show_marketplace_suggestions', 'no' );\\nupdate_option( 'woocommerce_allow_tracking', 'no' );\\nupdate_option( 'woocommerce_default_country', 'US:CA' );\\nupdate_option( 'woocommerce_currency', 'USD' );\\nupdate_option( 'woocommerce_setup_jetpack_opted_in', 'no' );\\n\\n$mu_dir = WP_CONTENT_DIR . '\\\/mu-plugins';\\nif ( ! is_dir( $mu_dir ) ) {\\n\\twp_mkdir_p( $mu_dir );\\n}\\n\\n$mu_file = $mu_dir . '\\\/caf-playground-demo.php';\\nif ( ! file_exists( $mu_file ) ) {\\n\\tfile_put_contents( $mu_file, $caf_preview_mu_plugin );\\n}\\n\\nif ( ! function_exists( 'caf_preview_register_recipe_cpt' ) && file_exists( $mu_file ) ) {\\n\\trequire_once $mu_file;\\n}\\nif ( function_exists( 'caf_preview_register_recipe_cpt' ) ) {\\n\\tcaf_preview_register_recipe_cpt();\\n}\\n\\nfunction caf_pv_term( $name, $taxonomy ) {\\n\\t$existing = term_exists( $name, $taxonomy );\\n\\tif ( $existing ) {\\n\\t\\treturn (int) ( is_array( $existing ) ? $existing['term_id'] : $existing );\\n\\t}\\n\\t$created = wp_insert_term( $name, $taxonomy );\\n\\treturn is_wp_error( $created ) ? 0 : (int) $created['term_id'];\\n}\\n\\n$news     = caf_pv_term( 'News', 'category' );\\n$guides   = caf_pv_term( 'Guides', 'category' );\\n$reviews  = caf_pv_term( 'Reviews', 'category' );\\n\\n$blog_posts = array(\\n\\tarray( 'How AJAX Filters Improve Shop UX', 'Visitors find products faster when filters update without a page reload.', array( $guides ) ),\\n\\tarray( 'Five Layout Ideas for a Product Grid', 'Use columns, gaps, and pagination to keep long catalogs easy to scan.', array( $guides ) ),\\n\\tarray( 'Why Custom Post Types Need Filters', 'Recipes, jobs, and listings work best when visitors can narrow by taxonomy.', array( $news ) ),\\n\\tarray( 'WooCommerce Category Filter Tips', 'Combine categories, attributes, and price so shoppers can refine quickly.', array( $reviews ) ),\\n\\tarray( 'Building a Recipe Directory', 'A custom post type plus cuisine and meal-type taxonomies makes recipes searchable.', array( $news ) ),\\n\\tarray( 'From Classic Panel to CAF Builder', 'The drag-and-drop builder lets you design filters, cards, and layout in three steps.', array( $reviews ) ),\\n);\\n\\nforeach ( $blog_posts as $item ) {\\n\\twp_insert_post(\\n\\t\\tarray(\\n\\t\\t\\t'post_title'   => $item[0],\\n\\t\\t\\t'post_content' => $item[1],\\n\\t\\t\\t'post_excerpt' => $item[1],\\n\\t\\t\\t'post_status'  => 'publish',\\n\\t\\t\\t'post_type'    => 'post',\\n\\t\\t\\t'post_category'=> $item[2],\\n\\t\\t)\\n\\t);\\n}\\n\\n$cuisines = array(\\n\\t'Italian'       => caf_pv_term( 'Italian', 'cuisine' ),\\n\\t'Indian'        => caf_pv_term( 'Indian', 'cuisine' ),\\n\\t'American'      => caf_pv_term( 'American', 'cuisine' ),\\n\\t'Japanese'      => caf_pv_term( 'Japanese', 'cuisine' ),\\n\\t'Mexican'       => caf_pv_term( 'Mexican', 'cuisine' ),\\n\\t'Mediterranean' => caf_pv_term( 'Mediterranean', 'cuisine' ),\\n\\t'Thai'          => caf_pv_term( 'Thai', 'cuisine' ),\\n);\\n$meals = array(\\n\\t'Breakfast' => caf_pv_term( 'Breakfast', 'meal-type' ),\\n\\t'Lunch'     => caf_pv_term( 'Lunch', 'meal-type' ),\\n\\t'Dinner'    => caf_pv_term( 'Dinner', 'meal-type' ),\\n\\t'Dessert'   => caf_pv_term( 'Dessert', 'meal-type' ),\\n);\\n$diets = array(\\n\\t'Vegetarian' => caf_pv_term( 'Vegetarian', 'diet-type' ),\\n\\t'Vegan'      => caf_pv_term( 'Vegan', 'diet-type' ),\\n\\t'Non-Veg'    => caf_pv_term( 'Non-Veg', 'diet-type' ),\\n);\\n$methods = array(\\n\\t'Bake'     => caf_pv_term( 'Bake', 'cooking-method' ),\\n\\t'Grill'    => caf_pv_term( 'Grill', 'cooking-method' ),\\n\\t'No-cook'  => caf_pv_term( 'No-cook', 'cooking-method' ),\\n\\t'Simmer'   => caf_pv_term( 'Simmer', 'cooking-method' ),\\n\\t'Stovetop' => caf_pv_term( 'Stovetop', 'cooking-method' ),\\n);\\n$preps = array(\\n\\t'10 min' => caf_pv_term( '10 min', 'prep-time' ),\\n\\t'15 min' => caf_pv_term( '15 min', 'prep-time' ),\\n\\t'20 min' => caf_pv_term( '20 min', 'prep-time' ),\\n\\t'25 min' => caf_pv_term( '25 min', 'prep-time' ),\\n\\t'30 min' => caf_pv_term( '30 min', 'prep-time' ),\\n\\t'45 min' => caf_pv_term( '45 min', 'prep-time' ),\\n\\t'60 min' => caf_pv_term( '60 min', 'prep-time' ),\\n);\\n\\n$recipes = array(\\n\\tarray( 'Margherita Pizza', 'Classic tomato, mozzarella, and basil pizza.', 'Italian', 'Dinner', 'Vegetarian', 'Bake', '30 min' ),\\n\\tarray( 'Chicken Tikka', 'Yogurt-marinated grilled chicken with warm spices.', 'Indian', 'Dinner', 'Non-Veg', 'Grill', '45 min' ),\\n\\tarray( 'Avocado Toast', 'Smashed avocado on toasted bread with lemon and chili.', 'American', 'Breakfast', 'Vegan', 'No-cook', '10 min' ),\\n\\tarray( 'Miso Soup', 'Light Japanese soup with tofu, seaweed, and scallions.', 'Japanese', 'Lunch', 'Vegetarian', 'Simmer', '20 min' ),\\n\\tarray( 'Beef Tacos', 'Seasoned beef in warm tortillas with salsa and lime.', 'Mexican', 'Dinner', 'Non-Veg', 'Stovetop', '25 min' ),\\n\\tarray( 'Quinoa Salad', 'Mediterranean quinoa with cucumber, tomato, and herbs.', 'Mediterranean', 'Lunch', 'Vegan', 'No-cook', '15 min' ),\\n\\tarray( 'Chocolate Cake', 'Rich cocoa cake with a simple chocolate frosting.', 'American', 'Dessert', 'Vegetarian', 'Bake', '60 min' ),\\n\\tarray( 'Pad Thai', 'Stir-fried rice noodles with tamarind, egg, and peanuts.', 'Thai', 'Dinner', 'Non-Veg', 'Stovetop', '30 min' ),\\n);\\n\\nforeach ( $recipes as $item ) {\\n\\t$id = wp_insert_post(\\n\\t\\tarray(\\n\\t\\t\\t'post_title'   => $item[0],\\n\\t\\t\\t'post_content' => $item[1],\\n\\t\\t\\t'post_excerpt' => $item[1],\\n\\t\\t\\t'post_status'  => 'publish',\\n\\t\\t\\t'post_type'    => 'recipe',\\n\\t\\t)\\n\\t);\\n\\tif ( ! $id || is_wp_error( $id ) ) {\\n\\t\\tcontinue;\\n\\t}\\n\\twp_set_object_terms( $id, array( (int) $cuisines[ $item[2] ] ), 'cuisine' );\\n\\twp_set_object_terms( $id, array( (int) $meals[ $item[3] ] ), 'meal-type' );\\n\\twp_set_object_terms( $id, array( (int) $diets[ $item[4] ] ), 'diet-type' );\\n\\twp_set_object_terms( $id, array( (int) $methods[ $item[5] ] ), 'cooking-method' );\\n\\twp_set_object_terms( $id, array( (int) $preps[ $item[6] ] ), 'prep-time' );\\n}\\n\\nif ( class_exists( 'WooCommerce' ) && class_exists( 'WC_Product_Simple' ) ) {\\n\\t$clothing    = caf_pv_term( 'Clothing', 'product_cat' );\\n\\t$electronics = caf_pv_term( 'Electronics', 'product_cat' );\\n\\t$home        = caf_pv_term( 'Home', 'product_cat' );\\n\\t$accessories = caf_pv_term( 'Accessories', 'product_cat' );\\n\\t$sale_tag    = caf_pv_term( 'Sale', 'product_tag' );\\n\\t$new_tag     = caf_pv_term( 'New', 'product_tag' );\\n\\n\\t$color_taxonomy = 'pa_color';\\n\\tif ( function_exists( 'wc_create_attribute' ) && ! taxonomy_exists( $color_taxonomy ) ) {\\n\\t\\twc_create_attribute(\\n\\t\\t\\tarray(\\n\\t\\t\\t\\t'name'         => 'Color',\\n\\t\\t\\t\\t'slug'         => 'color',\\n\\t\\t\\t\\t'type'         => 'select',\\n\\t\\t\\t\\t'order_by'     => 'menu_order',\\n\\t\\t\\t\\t'has_archives' => false,\\n\\t\\t\\t)\\n\\t\\t);\\n\\t\\tregister_taxonomy(\\n\\t\\t\\t$color_taxonomy,\\n\\t\\t\\tarray( 'product' ),\\n\\t\\t\\tarray(\\n\\t\\t\\t\\t'labels'       => array( 'name' => 'Color' ),\\n\\t\\t\\t\\t'hierarchical' => false,\\n\\t\\t\\t\\t'show_ui'      => false,\\n\\t\\t\\t\\t'query_var'    => true,\\n\\t\\t\\t\\t'rewrite'      => false,\\n\\t\\t\\t)\\n\\t\\t);\\n\\t}\\n\\n\\t$colors = array(\\n\\t\\t'Red'   => caf_pv_term( 'Red', $color_taxonomy ),\\n\\t\\t'Blue'  => caf_pv_term( 'Blue', $color_taxonomy ),\\n\\t\\t'Green' => caf_pv_term( 'Green', $color_taxonomy ),\\n\\t\\t'Black' => caf_pv_term( 'Black', $color_taxonomy ),\\n\\t);\\n\\n\\t$attr_id = 0;\\n\\tif ( function_exists( 'wc_attribute_taxonomy_id_by_name' ) ) {\\n\\t\\t$attr_id = (int) wc_attribute_taxonomy_id_by_name( 'color' );\\n\\t}\\n\\n\\t$products = array(\\n\\t\\tarray( 'Red Hoodie', '29', '19', array( $clothing ), array( $sale_tag ), 'Red', true ),\\n\\t\\tarray( 'Blue T-Shirt', '18', '', array( $clothing ), array( $new_tag ), 'Blue', false ),\\n\\t\\tarray( 'Black Sneakers', '79', '', array( $clothing ), array( $new_tag ), 'Black', true ),\\n\\t\\tarray( 'Green Cap', '15', '', array( $clothing ), array(), 'Green', false ),\\n\\t\\tarray( 'Wireless Headphones', '89', '69', array( $electronics ), array( $sale_tag ), 'Black', true ),\\n\\t\\tarray( 'Phone Stand', '24', '', array( $electronics ), array( $new_tag ), 'Blue', false ),\\n\\t\\tarray( 'Ceramic Vase', '42', '', array( $home ), array(), 'Red', false ),\\n\\t\\tarray( 'Desk Lamp', '55', '', array( $home ), array( $new_tag ), 'Black', false ),\\n\\t\\tarray( 'Canvas Tote', '22', '', array( $accessories ), array(), 'Green', false ),\\n\\t\\tarray( 'Leather Wallet', '35', '28', array( $accessories ), array( $sale_tag ), 'Red', true ),\\n\\t);\\n\\n\\tforeach ( $products as $item ) {\\n\\t\\t$product = new WC_Product_Simple();\\n\\t\\t$product->set_name( $item[0] );\\n\\t\\t$product->set_status( 'publish' );\\n\\t\\t$product->set_catalog_visibility( 'visible' );\\n\\t\\t$product->set_regular_price( $item[1] );\\n\\t\\tif ( '' !== $item[2] ) {\\n\\t\\t\\t$product->set_sale_price( $item[2] );\\n\\t\\t}\\n\\t\\t$product->set_short_description( 'Sample product for the CAF builder preview.' );\\n\\t\\t$product->set_description( 'Use this product in the CAF Builder to test category, tag, color, and price filters.' );\\n\\t\\t$product->set_category_ids( array_filter( $item[3] ) );\\n\\t\\t$product->set_tag_ids( array_filter( $item[4] ) );\\n\\t\\t$product->set_featured( ! empty( $item[6] ) );\\n\\t\\t$product->set_manage_stock( false );\\n\\t\\t$product->set_stock_status( 'instock' );\\n\\n\\t\\tif ( taxonomy_exists( $color_taxonomy ) && ! empty( $colors[ $item[5] ] ) ) {\\n\\t\\t\\t$attribute = new WC_Product_Attribute();\\n\\t\\t\\tif ( $attr_id ) {\\n\\t\\t\\t\\t$attribute->set_id( $attr_id );\\n\\t\\t\\t}\\n\\t\\t\\t$attribute->set_name( $color_taxonomy );\\n\\t\\t\\t$attribute->set_options( array( $item[5] ) );\\n\\t\\t\\t$attribute->set_visible( true );\\n\\t\\t\\t$attribute->set_variation( false );\\n\\t\\t\\t$product->set_attributes( array( $attribute ) );\\n\\t\\t}\\n\\n\\t\\t$product_id = $product->save();\\n\\t\\tif ( $product_id && taxonomy_exists( $color_taxonomy ) ) {\\n\\t\\t\\twp_set_object_terms( $product_id, array( $item[5] ), $color_taxonomy );\\n\\t\\t}\\n\\t}\\n}\\n\\nflush_rewrite_rules( false );\\nupdate_option( 'caf_wporg_preview_seeded', '1' );\\n\"}],\"login\":true}"}},"all_blocks":[],"tagged_versions":["1.0","1.1","1.2","1.3","1.4","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.4.8","1.4.9","1.5","1.5.1","1.5.2","1.5.3","1.5.4","1.5.5","1.5.6","1.6","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.7","1.7.1","1.8","1.8.1","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8","1.8.9","1.9","1.9.1","1.9.2","1.9.3","1.9.4","1.9.5","1.9.6","1.9.7","1.9.8","2.0","2.1","2.2","2.3","2.4","2.5","2.5.1","2.6","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.7","2.7.1","2.7.2","2.7.2.1","2.7.2.2","2.7.2.3","2.8","2.8.1","2.8.2","2.8.3","2.8.4","2.8.4.1","2.8.5","2.8.5.1","2.8.5.2","2.9.0","2.9.1","3.0.0","3.0.1"],"block_files":[],"assets_screenshots":{"Screenshot-1.gif":{"filename":"Screenshot-1.gif","revision":3655954,"resolution":"1","location":"assets","locale":"","width":850,"height":478},"Screenshot-2.gif":{"filename":"Screenshot-2.gif","revision":3655954,"resolution":"2","location":"assets","locale":"","width":850,"height":478},"Screenshot-3.gif":{"filename":"Screenshot-3.gif","revision":3655954,"resolution":"3","location":"assets","locale":"","width":850,"height":478},"Screenshot-4.gif":{"filename":"Screenshot-4.gif","revision":3655954,"resolution":"4","location":"assets","locale":"","width":850,"height":478},"Screenshot-5.gif":{"filename":"Screenshot-5.gif","revision":3655954,"resolution":"5","location":"assets","locale":"","width":850,"height":478},"Screenshot-6.gif":{"filename":"Screenshot-6.gif","revision":3655954,"resolution":"6","location":"assets","locale":"","width":850,"height":478},"Screenshot-7.gif":{"filename":"Screenshot-7.gif","revision":3655954,"resolution":"7","location":"assets","locale":"","width":850,"height":478}},"screenshots":{"1":"<strong>Create New Filter<\/strong>: Select your post type to get started.","2":"<strong>Add Filter Modules<\/strong>: Choose from Search, Dropdown, Checkbox, Reset and more filter types.","3":"<strong>Customize Filter Design<\/strong>: Control colors, backgrounds, borders, spacing and styling for each filter module.","4":"<strong>Enable Color Swatches<\/strong>: Switch a Checkbox filter from plain checkboxes to color swatches with one toggle.","5":"<strong>Customize Post\/Product Items<\/strong>: Add and style individual post modules like price, title, image, author, date, add to cart and more.","6":"<strong>Responsive Design<\/strong>: Switch between desktop, tablet and mobile views to customize layouts for each device.","7":"<strong>Live Demos<\/strong>: View real-world examples of filters with wordpress posts, woocommerce, custom post types, taxonomies and stunning layouts."}},"plugin_section":[],"plugin_tags":[5861,37962,6033,4643,286],"plugin_category":[45],"plugin_contributors":[189889],"plugin_business_model":[],"class_list":["post-130947","plugin","type-plugin","status-publish","hentry","plugin_tags-ajax-filter","plugin_tags-category-filter","plugin_tags-product-filter","plugin_tags-taxonomy-filter","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-trustyplugins","plugin_committers-trustyplugins","plugin_support_reps-jasveer7863"],"banners":{"banner":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/banner-772x250.png?rev=3655954","banner_2x":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/banner-1544x500.png?rev=3655954","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/icon-256x256.png?rev=2410607","icon_2x":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/icon-256x256.png?rev=2410607","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/Screenshot-1.gif?rev=3655954","caption":"<strong>Create New Filter<\/strong>: Select your post type to get started."},{"src":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/Screenshot-2.gif?rev=3655954","caption":"<strong>Add Filter Modules<\/strong>: Choose from Search, Dropdown, Checkbox, Reset and more filter types."},{"src":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/Screenshot-3.gif?rev=3655954","caption":"<strong>Customize Filter Design<\/strong>: Control colors, backgrounds, borders, spacing and styling for each filter module."},{"src":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/Screenshot-4.gif?rev=3655954","caption":"<strong>Enable Color Swatches<\/strong>: Switch a Checkbox filter from plain checkboxes to color swatches with one toggle."},{"src":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/Screenshot-5.gif?rev=3655954","caption":"<strong>Customize Post\/Product Items<\/strong>: Add and style individual post modules like price, title, image, author, date, add to cart and more."},{"src":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/Screenshot-6.gif?rev=3655954","caption":"<strong>Responsive Design<\/strong>: Switch between desktop, tablet and mobile views to customize layouts for each device."},{"src":"https:\/\/ps.w.org\/category-ajax-filter\/assets\/Screenshot-7.gif?rev=3655954","caption":"<strong>Live Demos<\/strong>: View real-world examples of filters with wordpress posts, woocommerce, custom post types, taxonomies and stunning layouts."}],"raw_content":"<!--section=description-->\n<h4>THE COMPLETE FILTER SOLUTION: POSTS, CUSTOM POST TYPES &amp; WOOCOMMERCE PRODUCTS. DRAG &amp; DROP BUILDER INCLUDED.<\/h4>\n\n<p>Category AJAX Filter (CAF) is a free filter plugin for WordPress posts, custom post types and WooCommerce products. Visitors filter by category, tag, taxonomy, attribute or price instantly, with no page reload. Build it visually with the drag &amp; drop CAF Builder, where every element is a module: search box, dropdown, checkbox, range slider and more, all styled and placed however you want, with no coding and separate settings for desktop, tablet and mobile. Add it anywhere with a shortcode. The filter works with your existing layout in Elementor, Divi, WooCommerce shop pages and all major themes or you can create your own listing with drag &amp; drop. <a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Category AJAX Filter Pro<\/a> adds AI search, analytics, SEO controls, custom field filtering, attribute swatches, product badges and more.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=Mk3KDgUFBGU<\/p>\n\n<h3>\u2b50 Key Features<\/h3>\n\n<p>CAF includes the core features you need to create professional, fully customized post or woocommerce product filters. From instant AJAX filtering to pre-built templates, everything is designed for simplicity and power.<\/p>\n\n<ul>\n<li><p><strong>AJAX-Powered Instant Filtering<\/strong>: Filters use AJAX to update results instantly without page reload. Visitors see filtered posts and products in real-time as they select categories, tags or search anything across your content.<\/p><\/li>\n<li><p><strong>Drag &amp; Drop 3-Step Builder<\/strong>: The visual CAF Builder simplifies filter creation into three steps: Query &amp; Filters to set filtering logic, Post Item Template to design post and product cards, Layout Settings to control columns, posts per page, gaps, sort order, filter position and pagination.<\/p><\/li>\n<li><p><strong>Works with Any Post Type<\/strong>: Blog posts, any custom post type and WooCommerce products - one filter for all your content.<\/p><\/li>\n<li><p><strong>Pre-Built Template Library<\/strong>: Start with ready-made filter layouts and post item designs. Export your work as JSON to reuse across sites or import templates from other filters you've built.<\/p><\/li>\n<\/ul>\n\n<h3>\ud83d\udd17 Supported Post Types &amp; Compatibility<\/h3>\n\n<p><strong>Post types &amp; taxonomies<\/strong><\/p>\n\n<p>Filter WordPress posts, any custom post type registered on your site or WooCommerce products - by category, tag, brand, attribute, price or any custom taxonomy you've created, using Search, Dropdown, Checkbox and Range Slider modules.<\/p>\n\n<p><strong>WooCommerce<\/strong><\/p>\n\n<p>Full support for simple, variable and grouped products. Connect the filter to your existing shop layout or build a complete product listing with Product Image, Product Price, Add to Cart, Badges modules and more.<\/p>\n\n<p><strong>Page builder &amp; plugin compatibility<\/strong><\/p>\n\n<p>Works with all major page builders including Elementor, Divi and WP Bakery. Compatible with popular custom post type and custom field plugins like ACF, CPT UI and Meta Box. Elementor Loop Builder support is available.<\/p>\n\n<h3>\ud83c\udfac Free Live Demos<\/h3>\n\n<p>Explore CAF in action across WordPress posts, custom post types and WooCommerce products \u2014 every demo runs the free version, filtering instantly with no page reload.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/products-topbar-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Products Top Bar Filter<\/a> - WooCommerce<\/li>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/products-sidebar-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Products Sidebar Filter<\/a> \u2014 WooCommerce<\/li>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/full-width-with-search\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Full Width with Search Demo<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/side-image-description\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Side Image &amp; Description Demo<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/glossy-look\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Glossy Look Demo<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/simple-blogs-sidebar\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Simple Blogs Sidebar Demo<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/boxed-title-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Boxed Title Layout<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/top-dropdown-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Top Dropdown Filter Demo<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/job-board-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Job Board Filter Demo<\/a> \u2014 Custom Post Type<\/li>\n<li><a href=\"https:\/\/demo.trustyplugins.com\/recipe-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Recipe Filter Demo<\/a> \u2014 Custom Post Type<\/li>\n<\/ul>\n\n<h3>\ud83d\udc51 Category AJAX Filter Pro<\/h3>\n\n<p>Take your filters to the next level with <a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Category AJAX Filter Pro<\/a> plugin. It adds advanced filtering, deeper customization and extra integrations. From AI-powered search to WooCommerce swatches and smart badges, Pro gives you the tools to build filtering experiences that match your exact vision.<\/p>\n\n<ul>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/ai-search-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">AI Search<\/a><\/strong>: A visitor types \"red shoes under 50\" and gets the right products. AI Search understands what people mean, matching intent against your content, taxonomy terms, brands, attributes and price - not just exact keywords. Works on posts, custom post types and WooCommerce products. See the <a href=\"https:\/\/caf.trustyplugins.com\/demos\/ai-search-demo\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">live AI Search demo<\/a>.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/custom-fields-filters-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Custom Fields in Filters<\/a><\/strong>: Extend filtering beyond taxonomies by letting visitors filter with custom fields, including all WooCommerce product custom fields, using Checkbox, Dropdown, Range Slider or Search modules, with the ability to target the search box to specific custom fields for more focused searching.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/sort-filter-terms-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Sort Filter Terms<\/a><\/strong>: Manually reorder categories, taxonomies, brands, attributes or custom field terms in Checkbox and Dropdown filters using drag &amp; drop, instead of relying on alphabetical or count-based ordering.<\/p><\/li>\n<li><p><strong>Icons &amp; Images on Filters<\/strong>: Add an icon or image to any filter term alongside the label or in place of it. Use brand logos, colour swatches or category icons on checkbox and dropdown filters and on custom field terms.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/voice-search-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Voice Search<\/a><\/strong>: Let visitors search hands-free using voice input, with a customizable microphone icon you can position left or right and control the listening state feedback they see while speaking, making filtering more accessible and convenient.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/seo-controls-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">SEO Controls<\/a><\/strong>: Keep filtered pages crawlable and indexable with Filter With URL support and schema markup, so search engines understand your filtered content.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/advance-layout-controls-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Advanced Layout Controls<\/a><\/strong>: Place advanced pagination options like Load More, sorting dropdowns, selected filters and result counts exactly where you want them across four flexible positions: above filters, below filters, above the post grid or below the post grid, with drag &amp; drop control that lets you arrange them however you need, even stacking multiple modules in the same position.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/analytics-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Analytics<\/a><\/strong>: Get detailed insights into how visitors use your filters, including total filter clicks across categories, attributes, brands and selected price ranges, which filter combinations return zero results, clicks broken down by device type and a complete list of search keywords visitors used, all viewable across custom time periods to identify trends and gaps in your content and store.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/prefix-suffix-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Prefix and Suffix Options<\/a><\/strong>: In listing add custom text or icons before and after data throughout your layout in key modules like Post Title, Custom Field, Post Button, Product Price, Add to Cart and Badges, as well as result counts in your layout controls, so every piece of information displays exactly how you want it with complete customization over presentation.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/float-button-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Float Button<\/a><\/strong>: Take full control of how your filter appears on every device. Keep it inline or in a sidebar on desktop and show the same filter as a floating button on mobile and tablet, with full customization of the button text, icon, panel animation direction and overlay color.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/product-swatches-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Product Attribute Swatches<\/a><\/strong>: In listing show product attributes as selectable text, color or image swatches directly on product cards, each fully styleable. Shoppers pick their size or color and add the exact variation to cart without opening the product page, turning your filtered grid into a fast, one-stop shopping experience.<\/p><\/li>\n<li><p><strong><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/smart-product-badges-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Smart Product Badges<\/a><\/strong>: In listing go beyond the standard Sale badge with New, Best Seller, stock status, stock quantity and discount badges. Each badge comes with its own conditional logic, set a Low Stock Threshold to trigger a badge when inventory runs low, show discounts as an exact value or a percentage off and combine these options to build flexible badges that appear exactly when they should.<\/p><\/li>\n<\/ul>\n\n<p><strong>More Pro features<\/strong>:<\/p>\n\n<p>Dynamic Term Counts, Extended revision history, Custom fonts upload, Global font settings, include\/exclude posts\/products, Icon library, Icons\/images for terms &amp; custom fields, Masonry layout, Loader styles, Elementor Loop Builder support, Quick backend navigation.<\/p>\n\n<h3>\ud83c\udfaf Pro Demos<\/h3>\n\n<p>Explore CAF Pro in action with our live demo sites, showcasing advanced features, custom fields, WooCommerce product filtering and Pro-exclusive functionality:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/sidebar-products-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Sidebar Products Filter<\/a> \u2014 WooCommerce<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/right-sidebar-products-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Right Sidebar Products Filter<\/a> \u2014 WooCommerce<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/employee-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Employee Filter<\/a> \u2014 Custom Post Type<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/cars-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Cars Filter<\/a> \u2014 Custom Post Type<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/multiple-taxonomy-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Multiple Taxonomy Filter<\/a> \u2014 Custom Post Type<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/multiple-taxonomy-horizontal-dropdown-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Multiple Taxonomy Horizontal Dropdown Filter (Modern)<\/a> \u2014 Custom Post Type<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/alphabetical-navigation-filter\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Alphabetical Navigation Filter<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/full-width-timeline\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Full Width Timeline<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/gradient-border\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Gradient Border<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/masonry-with-description\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Masonry With Description<\/a> \u2014 WordPress Posts<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/carousel-slider\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Carousel Slider<\/a> \u2014 Custom Post Type<\/li>\n<li><a href=\"https:\/\/caf.trustyplugins.com\/demos\/simple-timeline\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">Simple Timeline<\/a> \u2014 WordPress Posts<\/li>\n<\/ul>\n\n<h3>\ud83d\udcda Quick Import Library<\/h3>\n\n<p>Skip the design process and import professional, ready-made filter layouts in seconds:<\/p>\n\n<ol>\n<li>Create a new filter and select your post type or products.<\/li>\n<li>Click the <strong>Import\/Export<\/strong> icon at the top right of the builder and open the <strong>Import<\/strong> tab.<\/li>\n<li>Click <strong>Import From Library<\/strong> and pick a category \u2014 Full Filter Layout, Filter, Single Post Item or Layout Settings. Under Filter you can also import a single type, like a checkbox or a dropdown.<\/li>\n<li>Select any template and click <strong>Import<\/strong> \u2014 the complete design with all modules and styling loads instantly.<\/li>\n<\/ol>\n\n<p>https:\/\/www.youtube.com\/watch?v=qov6jSRrEEM<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>This plugin ships minified JavaScript for the admin filter builder. Per <a href=\"https:\/\/developer.wordpress.org\/plugins\/wordpress-org\/detailed-plugin-guidelines\/#4-code-must-be-mostly-human-readable\">WordPress plugin guideline #4<\/a>, human-readable source code and build tools are publicly maintained here:<\/p>\n\n<ul>\n<li><strong>React builder source (admin UI):<\/strong> https:\/\/github.com\/trustyplugins\/category-ajax-filter\/tree\/3.0\/react-builder\/src<\/li>\n<li><strong>Build tools:<\/strong> https:\/\/github.com\/trustyplugins\/category-ajax-filter\/tree\/3.0\/react-builder (<code>package.json<\/code>, <code>webpack.config.js<\/code>, <code>scripts\/<\/code>) \u2014 see <code>react-builder\/BUILD.md<\/code><\/li>\n<li><strong>PHP plugin source:<\/strong> https:\/\/github.com\/trustyplugins\/category-ajax-filter\/tree\/3.0<\/li>\n<\/ul>\n\n<p>To rebuild the admin builder JavaScript:<\/p>\n\n<pre><code>git clone -b 3.0 https:\/\/github.com\/trustyplugins\/category-ajax-filter.git\ncd category-ajax-filter\/react-builder\nnpm install\nnpx cross-env CAF_BUILD_FREE=1 npx wp-scripts build\n<\/code><\/pre>\n\n<p>The production plugin zip contains only the compiled files under <code>react-builder\/build\/<\/code>.<\/p>\n\n<!--section=installation-->\n<h4>Automatic installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress dashboard, go to Plugins &gt; Add New.<\/li>\n<li>Search for \"Category AJAX Filter\".<\/li>\n<li>Click Install Now, then Activate.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<ol>\n<li>Download the plugin zip file.<\/li>\n<li>Upload the plugin files to the <code>wp-content\/plugins\/<\/code> directory or install the zip through Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate the plugin through the Plugins screen in WordPress.<\/li>\n<\/ol>\n\n<h4>After activation<\/h4>\n\n<ol>\n<li>Go to the <strong>Category Filter<\/strong> menu in your dashboard.<\/li>\n<li>Choose the CAF Builder for the guided 3-step visual setup or the Classic Panel for the original settings screens.<\/li>\n<li>Configure your Query &amp; Filters, Post Item Template and Layout Settings.<\/li>\n<li>Place your finished filter on any page or section using the provided shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, fully. Filter products by categories, tags, brands, attributes and price. Connect the filter to your existing shop layout or build a complete custom product listing with the builder's product modules. Simple, variable and grouped products are all supported. Star-rating filters are available in the separate Pro plugin.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20custom%20post%20types%3F\"><h3>Does this work with custom post types?<\/h3><\/dt>\n<dd><p>Yes. You can target any registered post type, not just default WordPress posts, including WooCommerce products.<\/p><\/dd>\n<dt id=\"will%20it%20work%20with%20my%20existing%20layout%3F\"><h3>Will it work with my existing layout?<\/h3><\/dt>\n<dd><p>Yes. Just create your filter in step 1 and place the shortcode with your existing listing - no need to rebuild it.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20divi%2C%20elementor%20and%20their%20product%20grid%20modules%3F\"><h3>Does this work with Divi, Elementor and their product grid modules?<\/h3><\/dt>\n<dd><p>Yes. CAF filters work with Divi and Elementor shop modules, so you can filter the product grids built with their widgets. You can also paste the CAF shortcode anywhere in any page builder.<\/p><\/dd>\n<dt id=\"can%20i%20add%20multiple%20filters%20on%20the%20same%20page%3F\"><h3>Can I add multiple filters on the same page?<\/h3><\/dt>\n<dd><p>Yes. You can add multiple filters to the same page using their shortcodes.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20site%3F\"><h3>Will this slow down my site?<\/h3><\/dt>\n<dd><p>Filtering happens via AJAX, so only the results update, the page itself doesn't reload. The plugin is built to run efficiently on standard WordPress hosting.<\/p><\/dd>\n<dt id=\"can%20i%20reuse%20a%20filter%20or%20layout%20on%20another%20site%3F\"><h3>Can I reuse a filter or layout on another site?<\/h3><\/dt>\n<dd><p>Yes. Use the export\/import tools to move a full layout, a single filter, a module, a post item template or just layout settings between sites.<\/p><\/dd>\n<dt id=\"what%20does%20ai%20search%20actually%20do%3F\"><h3>What does AI Search actually do?<\/h3><\/dt>\n<dd><p><a href=\"https:\/\/trustyplugins.com\/category-ajax-filter-pro\/ai-search-feature\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">AI Search<\/a> (Pro) uses semantic, NLP-based matching so results reflect what a visitor means, not just literal keyword matches. See the <a href=\"https:\/\/caf.trustyplugins.com\/demos\/ai-search-demo\/?utm_source=wprepo&amp;utm_medium=referral&amp;utm_campaign=wordpress_org\">live AI Search demo<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.0.1<\/h4>\n\n<p>(21\/08\/2026)\n* Restored the Pro lock overlay on prefix\/suffix settings for post modules (title, author, date, comment count, button, and badges).\n* Builder list header: Support now opens the Trusty Plugins support page; Videos is hidden until the tutorial URL is ready.\n* Added a Pro badge on the header settings icon for custom global fonts.<\/p>\n\n<h4>3.0.0<\/h4>\n\n<p>(20\/08\/2026)\n* Major update \u2014 introduces the visual CAF Builder for designing AJAX filters and post layouts from the admin.\n* Added visual drag-and-drop filter builder in the admin.\n* New React-based builder UI for filter and post layout design.\n* Free tier includes core builder layouts, modules, and tier limits.\n* WordPress Plugin Check and coding standards improvements.\n* Security and escaping fixes for export and template output.<\/p>\n\n<h4>2.9.1<\/h4>\n\n<p>(17\/08\/2026)\n* Tested up to WordPress 7.1.\n* Fixed category\/terms meta saving (term IDs are now sanitized as integers instead of CSS class strings).\n* Fixed broken conditional stylesheet URLs caused by accidental quote characters in asset paths.<\/p>\n\n<h4>2.9.0<\/h4>\n\n<p>(06\/08\/2026)\n* Fixed frontend AJAX failures (-1 \/ \"Posts found: error\") on sites using page cache by refreshing the nonce via an uncached request.\n* Frontend filter AJAX nonce is always verified (Security Enable\/Disable option removed).\n* Hardened frontend filter AJAX to use trusted filter settings from post meta.\n* Admin taxonomy\/terms AJAX is no longer available to logged-out users.\n* Improved filter meta save capability checks.\n* Readme and version updated.<\/p>\n\n<h4>2.8.5.2<\/h4>\n\n<p>(24\/07\/2026)\n* Nonce\/sanitization functions updated.\n* Readme updated.<\/p>\n\n<h4>2.8.5.1<\/h4>\n\n<p>(08\/06\/2026)\n* Admin CSS fixed.\n* readme Updated<\/p>\n\n<h4>2.8.5<\/h4>\n\n<p>(25\/05\/2026)\n* Updated admin design compatible with WordPress 7.0.\n* Admin CSS fixed.<\/p>\n\n<h4>2.8.4.1<\/h4>\n\n<p>(10\/03\/2026)\n* Readme updated.<\/p>\n\n<h4>2.8.4<\/h4>\n\n<p>(08\/07\/2025)\n* CSS conflict issue fixed [for RankMath, WooCommerce]<\/p>\n\n<h4>2.8.3<\/h4>\n\n<p>(07\/11\/2024)\n* Sorting feature added at the admin settings panel.\n* Vulnerability fixed mentioned by Wordfence.<\/p>\n\n<h4>2.8.2<\/h4>\n\n<p>(20\/05\/2024)\n* Plugin scanned with 'plugin-check' and fixed all security warnings.<\/p>\n\n<h4>2.8.1<\/h4>\n\n<p>(11\/04\/2024)\n* 'Read More' and 'All' string translation compatibility.<\/p>\n\n<h4>2.8<\/h4>\n\n<p>(26\/02\/2024)\n* Enhancement [PRO version (8.8) will be removed as addon]\n* If using CAF PRO 8.8, user can deactivate the free version.<\/p>\n\n<h4>2.7.2.3<\/h4>\n\n<p>(19\/02\/2024)\n* Bug fixes [Duplicate declaration error of static variable]<\/p>\n\n<h4>2.7.2.2<\/h4>\n\n<p>(15\/02\/2024)\n* Fixed license error [compatibility with PRO]\n* Bug fixes.\n* Hooks added [compatibility with PRO]<\/p>\n\n<h4>2.7.2.1<\/h4>\n\n<p>(20\/06\/2023)\n* Fixed styling and responsive issues.<\/p>\n\n<h4>2.7.2<\/h4>\n\n<p>(17\/05\/2023)\n* Added support for WooCommerce.<\/p>\n\n<h4>2.7.1<\/h4>\n\n<p>(17\/05\/2023)\n* Post title new tab link open [fix]\n* Post description font syncing with PRO.<\/p>\n\n<h4>2.7<\/h4>\n\n<p>(02\/05\/2023)\n* Bug fixed.\n* Special CSS add class issue fixed.<\/p>\n\n<h4>2.6.7<\/h4>\n\n<p>(18\/01\/2023)\n* New pagination added in PRO [Compatible to 8.6.5]<\/p>\n\n<h4>2.6.6<\/h4>\n\n<p>(06\/01\/2023)\n* WordPress dashboard icon changed.<\/p>\n\n<h4>2.6.5<\/h4>\n\n<p>(23\/12\/2022)\n* Bug fixed [Fixed function conflict - get_image_sizes]<\/p>\n\n<h4>2.6.4<\/h4>\n\n<p>(27\/07\/2022)\n* Bug fixed [#parse error, #PRO version error]<\/p>\n\n<h4>2.6.3<\/h4>\n\n<p>(27\/07\/2022)\n* Bug fixed [#parse error, #PRO version error]<\/p>\n\n<h4>2.6.2<\/h4>\n\n<p>(27\/07\/2022)\n* Bug fixed [Parse Error - Due to template conflict (date.php, author.php)]<\/p>\n\n<h4>2.6<\/h4>\n\n<p>(26\/07\/2022)\n* Restrict ABSPATH function added to files.\n* Templates directory added with all used modules.\n* Many developer hooks added.\n* Compatible with CAF PRO [8.6]<\/p>\n\n<h4>2.5.2<\/h4>\n\n<p>(01\/07\/2022)<\/p>\n\n<h4>2.5.1<\/h4>\n\n<p>(01\/07\/2022)\n* Category issue fixed when using PRO with free layouts.<\/p>\n\n<h4>2.5<\/h4>\n\n<p>(25\/05\/2022)\n* Default filter layout's more button hook added [text change]\n* Inherit added in transform [Typography]<\/p>\n\n<h4>2.4<\/h4>\n\n<p>(01\/04\/2022)\n* Filter layout dropdown changed [Admin Panel]\n* PRO compatible version [8.4]<\/p>\n\n<h4>2.3<\/h4>\n\n<p>(15\/03\/2022)\n* Double slash in source file bug fixed.<\/p>\n\n<h4>2.2<\/h4>\n\n<p>(09\/03\/2022)\n* Bug fixed of parse error [of 2.1]\n* PRO compatible changes [8.2]<\/p>\n\n<h4>2.1<\/h4>\n\n<p>(08\/03\/2022)\n* PRO compatible changes [8.2]<\/p>\n\n<h4>2.0<\/h4>\n\n<p>(03\/03\/2022)\n* Fixed isset image warning for all post layouts.\n* Added dynamic CSS for all post layouts and filter layouts.\n* PRO compatible [8.0]<\/p>\n\n<h4>1.9.8<\/h4>\n\n<p>(02\/03\/2022)\n* Update patch to fix 1.9.7.<\/p>\n\n<h4>1.9.7<\/h4>\n\n<p>(02\/03\/2022)\n* Fixed isset image warning for all post layouts.\n* Added dynamic CSS for all post layouts and filter layouts.\n* PRO compatible [7.7]<\/p>\n\n<h4>1.9.6<\/h4>\n\n<p>(24\/02\/2022)\n* Missing string translation functions added (Loco Translate)\n* PRO compatible version (7.6)<\/p>\n\n<h4>1.9.5<\/h4>\n\n<p>(08\/02\/2022)\n* Fixed console error.<\/p>\n\n<h4>1.9.4<\/h4>\n\n<p>(05\/02\/2022)\n* Fixed (Posts found: parsererror), new setting option added to enable\/disable Nonce from plugin settings under 'Advanced Tab' (advanced-&gt;security).<\/p>\n\n<h4>1.9.3<\/h4>\n\n<p>(04\/02\/2022)\n* Conflict fixed (jQuery is not defined)\n* Language translation file added (Russian: RU)<\/p>\n\n<h4>1.9.2<\/h4>\n\n<p>(24\/01\/2022)\n* Compatible with WordPress 5.9.<\/p>\n\n<h4>1.9.1<\/h4>\n\n<p>(12\/01\/2022)\n* Whitespace fixed (Header information)<\/p>\n\n<h4>1.9<\/h4>\n\n<p>(12\/01\/2022)\n* Compatible with Loco Translate.\n* Admin area translatable.\n* Localization and internationalization done.\n* Securing (escaping) output.<\/p>\n\n<h4>1.8.9<\/h4>\n\n<p>(26\/11\/2021)\n* Compatible version with PRO (Analytics Feature)<\/p>\n\n<h4>1.8.8<\/h4>\n\n<p>(04\/09\/2021)\n* Bugs fixed, Font Awesome compatible version with PRO.<\/p>\n\n<h4>1.8.7<\/h4>\n\n<p>(28\/08\/2021)\n* Meta fields show\/hide functionality in PRO version [Compatible]<\/p>\n\n<h4>1.8.6<\/h4>\n\n<p>(05\/08\/2021)\n* Fixed shortcode generator error (Dashboard shortcode fixes)<\/p>\n\n<h4>1.8.5<\/h4>\n\n<p>(30\/07\/2021)\n* jQuery not defined error fixed.<\/p>\n\n<h4>1.8.4<\/h4>\n\n<p>(26\/07\/2021)\n* Fixes.<\/p>\n\n<h4>1.8.3<\/h4>\n\n<p>(20\/07\/2021)\n* Default color combination set \/ user experience.<\/p>\n\n<h4>1.8.2<\/h4>\n\n<p>(09\/07\/2021)\n* Category bug fixed for post layouts.<\/p>\n\n<h4>1.8.1<\/h4>\n\n<p>(09\/07\/2021)\n* Enable\/disable scroll to div [PRO Compatible]<\/p>\n\n<h4>1.8<\/h4>\n\n<ul>\n<li>Multiple taxonomy selection feature in PRO [PRO Compatible]\nThis version is compatible with PRO that has the feature of multiple taxonomy selection. We added one more new filter layout in PRO version. Now you can select multiple taxonomy for all the filters.<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Select default category [PRO Compatible]<\/li>\n<\/ul>\n\n<h4>1.7<\/h4>\n\n<ul>\n<li>W3C compatible fixes.<\/li>\n<\/ul>\n\n<h4>1.6.9<\/h4>\n\n<ul>\n<li>Read More button translation compatible [PRO Compatible]<\/li>\n<\/ul>\n\n<h4>1.6.8<\/h4>\n\n<ul>\n<li>W3C compatible, bug fixed [PRO Compatible]<\/li>\n<\/ul>\n\n<h4>1.6.7<\/h4>\n\n<ul>\n<li>Multiple checkbox filter bug fixed [PRO Compatible]<\/li>\n<\/ul>\n\n<h4>1.6.6<\/h4>\n\n<ul>\n<li>Translation settings for default strings [PRO Compatible]<\/li>\n<li>Font bug fixed for Glossy Layout.<\/li>\n<\/ul>\n\n<h4>1.6.5<\/h4>\n\n<ul>\n<li>Search field added for all filter layouts [PRO Compatible]<\/li>\n<\/ul>\n\n<h4>1.6<\/h4>\n\n<ul>\n<li>Search field bug fixed [PRO Compatible]<\/li>\n<\/ul>\n\n<h4>1.5.6<\/h4>\n\n<ul>\n<li>Search field added to search through posts [PRO Compatible]<\/li>\n<\/ul>\n\n<h4>1.5.5<\/h4>\n\n<ul>\n<li>One click demo import (PRO Compatible)<\/li>\n<\/ul>\n\n<h4>1.5.4<\/h4>\n\n<ul>\n<li>More button added in filter layout 1 (PRO Compatible)<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Make PRO compatible for animation effects.<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>CSS bug fix for Post Layout 1.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Bug fix for Avada Builder.<\/li>\n<\/ul>\n\n<h4>1.5<\/h4>\n\n<ul>\n<li>Readme updated, demo site updated.<\/li>\n<\/ul>\n\n<h4>1.4.9<\/h4>\n\n<ul>\n<li>Bug fixed, readme updated.<\/li>\n<\/ul>\n\n<h4>1.4.8<\/h4>\n\n<ul>\n<li>Glossy Layout, Simple Blogs Layout bug fixed.<\/li>\n<\/ul>\n\n<h4>1.4.7<\/h4>\n\n<ul>\n<li>Layout bug fixed.<\/li>\n<\/ul>\n\n<h4>1.4.6<\/h4>\n\n<ul>\n<li>Layout bug fixed.<\/li>\n<\/ul>\n\n<h4>1.4.5<\/h4>\n\n<ul>\n<li>Supported for PRO version.<\/li>\n<li>Many more hooks added.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Added three more filters.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Added one more filter to change the order of posts (Asc, Desc).<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Post excerpt supports (bug fixed).<\/li>\n<\/ul>\n\n<h4>1.4<\/h4>\n\n<ul>\n<li>Backend tab fixes (now plugin saves the user's last clicked tab)<\/li>\n<li>Shortcode tag splitter on post content.<\/li>\n<li>Post excerpt supports.<\/li>\n<\/ul>\n\n<h4>1.3<\/h4>\n\n<ul>\n<li>Added some filters to sort the posts\/filter categories by specific order.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Added a filter function to order by ID for filter categories.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First version of plugin.<\/li>\n<\/ul>","raw_excerpt":"AJAX filter &amp; WooCommerce product filter. Instantly filter posts, custom post types &amp; products by category, taxonomy, attributes, price + Elementor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/130947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=130947"}],"author":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/trustyplugins"}],"wp:attachment":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=130947"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=130947"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=130947"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=130947"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=130947"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=130947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}