Rumah >pembangunan bahagian belakang >tutorial php >Cara Menapis berbilang Siaran dalam WordPress dengan teg Menggunakan AJAX, tanpa menggunakan sebarang pemalam
Langkah-1:
Kotak Semak Html Seperti ini:
<div> <p>display all tabs or subjects container:<br> </p> <pre class="brush:php;toolbar:false"><!-- Container to display worksheets --> <div> <p><strong>Step-2:</strong><br> create js file:<br> </p> <pre class="brush:php;toolbar:false">jQuery(document).ready(function ($) { // Fetch Subjects on any checkbox change $('.subject-filter').on('change', function () { // Gather all selected grades var taxonomy = $(this).data('taxonomy'); // Taxonomy name var terms = []; // Array to hold selected terms $('.subject-filter:checked').each(function () { terms.push($(this).val()); }); // Fetch Subjects for selected grades fetchSubjects(taxonomy, terms); }); // Function to fetch Subjects function fetchSubjects(taxonomy = '', terms = []) { $.ajax({ url: ajax_object.ajax_url, type: 'POST', data: { action: 'fetch_subjects', nonce: ajax_object.nonce, taxonomy: taxonomy, terms: terms, // Send array of selected terms }, beforeSend: function () { $('.worksheet-container').html('<p>Loading...</p>'); }, success: function (response) { if (response.success) { $('.worksheet-container').html(response.data.html); } else { $('.worksheet-container').html('<p>' + response.data.message + '</p>'); } }, error: function () { $('.worksheet-container').html('<p>An error occurred. Please try again.</p>'); }, }); } });
Langkah-3:
Cipta Fungsi dalam functions.php:
// Daftar tindakan AJAX untuk pengguna log masuk (anda boleh tambah untuk pengguna yang tidak log masuk juga) add_action('wp_ajax_fetch_subjects', 'fetch_subjects'); add_action('wp_ajax_nopriv_fetch_subjects', 'fetch_subjects'); function fetch_subjects() { // Sahkan nonce untuk keselamatan jika (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'ajax_nonce')) { wp_send_json_error(array('message' => 'Nonce verification failed.')); wp_die(); } // Dapatkan taksonomi dan terma daripada permintaan AJAX $taksonomi = isset($_POST['taksonomi']) ? sanitize_text_field($_POST['taksonomi']) : ''; $terms = isset($_POST['terms']) ? array_map('sanitize_text_field', $_POST['terms']): array(); // Argumen pertanyaan lalai $args = array( 'post_type' => 'lembaran kerja', 'posts_per_page' => -1, // Ambil semua siaran ); // Jika istilah dipilih, ubah suai pertanyaan jika (!kosong($taksonomi) && !kosong($istilah)) { $args['tax_query'] = tatasusunan( tatasusunan( 'taksonomi' => $taksonomi, 'medan' => 'slug', 'syarat' => $terms, // Lulus tatasusunan istilah yang dipilih 'pengendali' => 'IN', // Padankan mana-mana istilah yang dipilih ), ); } // Jalankan WP_Query untuk mengambil siaran $query = WP_Query baharu($args); // Semak sama ada sebarang catatan ditemui if ($query->have_posts()) { $html = ''; manakala ($query->have_posts()) { $query->the_post(); // Keluarkan HTML siaran $html .= '<div>
Atas ialah kandungan terperinci Cara Menapis berbilang Siaran dalam WordPress dengan teg Menggunakan AJAX, tanpa menggunakan sebarang pemalam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!