admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('resource_filter_nonce') ]); } } public function renderFilterForm() { ob_start(); $template = rfGetTemplate('filter-form.php'); if ($template) { include_once $template; } else { echo '
Error: Template not found.
'; } $total_resources = wp_count_posts('resource')->publish; // Get the count of published resources ?>Filters applied: None
Error: Results template not found.
'; } // Prepare response JSON $response = [ 'count' => $query->found_posts, 'filters' => [ 'search' => isset($_POST['search']) ? sanitize_text_field($_POST['search']) : '', 'resource_type' => !empty($_POST['resource_type']) ? sanitize_text_field($_POST['resource_type']) : '', 'resource_subject' => !empty($_POST['resource_subject']) ? sanitize_text_field($_POST['resource_subject']) : '' ], 'html' => ob_get_clean() ]; echo json_encode($response); wp_die(); } public function loadResources() { $query_args = [ 'post_type' => 'resource', 'posts_per_page' => -1 ]; $query = new WP_Query($query_args); $resources = $query->posts; $template = rfGetTemplate('resource-results.php'); if ($template) { include_once $template; } else { echo 'Error: Results template not found.
'; } wp_reset_postdata(); } } new ResourceFilterPlugin();