Mehrere Taxonomien im AJAX-Filter

Ich verweise auf dieses Tutorial beim Erstellen einer Suchseite, um Beiträge mithilfe von Taxonomie-Begriffen über AJAX zu filtern. Es funktioniert gut mit mehreren Begriffen aus einer Taxonomie, aber ich möchte zwei benutzerdefinierte Taxonomien integrieren, dh “Inhaltstyp” und “Themen”. Diese Taxonomien sind mit dem benutzerdefinierten Post-Typ “Ressourcen” verknüpft, der gefiltert werden soll. Ich versuche herauszufinden, wie ich meine Abfrage anpassen kann, um beide Taxonomien einzubeziehen. Ich habe diesen Thread bemerkt, der die Verwendung von tax_query und relation in WP_Query , aber ich bin mir nicht sicher, wo ich diese Parameter in meiner eigenen Abfrage hinzufügen soll. Wie es derzeit existiert, werden meine Filter weiterhin Ergebnisse anzeigen, die nicht mit allen ausgewählten Filtern übereinstimmen. Mein Code ist so weit unten; Danke für jede Hilfe.

 /** * AJAX filter posts by taxonomy term */ function filter_posts() { if( !isset( $_POST['nonce'] ) || !wp_verify_nonce( $_POST['nonce'], 'maec' ) ) die('Permission denied'); /** * Default response */ $response = [ 'status' => 500, 'message' => 'Something is wrong, please try again later ...', 'content' => false, 'found' => 0 ]; $all = false; $terms = $_POST['params']['terms']; $page = intval($_POST['params']['page']); $qty = intval($_POST['params']['qty']); $pager = isset($_POST['pager']) ? $_POST['pager'] : 'pager'; $tax_qry = []; $msg = ''; /** * Check if term exists */ if (!is_array($terms)) : $response = [ 'status' => 501, 'message' => 'Term doesn\'t exist', 'content' => 0 ]; die(json_encode($response)); else : foreach ($terms as $tax => $slugs) : if (in_array('all-terms', $slugs)) { $all = true; } $tax_qry[] = [ 'taxonomy' => $tax, 'field' => 'slug', 'terms' => $slugs, ]; endforeach; endif; /** * Setup query */ $args = [ 'paged' => $page, 'post_type' => 'resource', 'post_status' => 'publish', 'posts_per_page' => $qty, ]; // get total number of posts $count_posts = wp_count_posts('resource'); $total_posts = $count_posts->publish; if ($tax_qry && !$all) : $args['tax_query'] = $tax_qry; endif; $qry = new WP_Query($args); ob_start(); if ($qry->have_posts()) : while ($qry->have_posts()) : $qry->the_post(); ?> 

<a href="https://wordpress.stackexchange.com/questions/271493/multiple-taxonomies-in-ajax-filter/">

found_posts; $msg .= ' of ' . $total_posts . ' results'; endforeach; $response = [ 'status' => 200, 'found' => $qry->found_posts, 'message' => $msg, 'method' => $pager, 'next' => $page + 1 ]; else : $response = [ 'status' => 201, 'message' => 'No posts found', 'next' => 0 ]; endif; $response['content'] = ob_get_clean(); die(json_encode($response)); } add_action('wp_ajax_do_filter_posts_mt', 'filter_posts'); add_action('wp_ajax_nopriv_do_filter_posts_mt', 'filter_posts'); /** * Shortocde for displaying terms filter and results on page */ function filter_posts_sc($atts) { $a = shortcode_atts( array( 'tax' => array('topics', 'content-type'), // Taxonomy 'terms' => false, // Get specific taxonomy terms only 'active' => false, // Set active term by ID 'per_page' => 10, // How many posts per page, 'pager' => 'pager' // 'pager' to use numbered pagination || 'infscr' to use infinite scroll ), $atts ); $result = NULL; $terms = get_terms($a['tax']); if (count($terms)) : ob_start(); ?> <div id="container-async" data-paged="" class="sc-ajax-filter sc-ajax-filter-multi">
<?php $result = ob_get_clean(); endif; return $result; } add_shortcode( 'ajax_filter_posts_mt', 'filter_posts_sc');

Solutions Collecting From Web of "Mehrere Taxonomien im AJAX-Filter"