1단계:
HTML 체크박스 다음과 같습니다:
<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>'); }, }); } });
3단계:
function.php에서 함수 만들기:
// 로그인한 사용자를 위한 AJAX 액션 등록(로그인하지 않은 사용자에 대해서도 추가 가능) add_action('wp_ajax_fetch_subjects', 'fetch_subjects'); add_action('wp_ajax_nopriv_fetch_subjects', 'fetch_subjects'); 함수 fetch_subjects() { // 보안을 위해 nonce를 확인합니다. if (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'ajax_nonce')) { wp_send_json_error(array('message' => 'Nonce 확인에 실패했습니다.')); wp_die(); } // AJAX 요청에서 분류 및 용어를 가져옵니다. $분류 = isset($_POST['분류']) ? sanitize_text_field($_POST['taxonomy']) : ''; $terms = isset($_POST['terms']) ? array_map('sanitize_text_field', $_POST['terms']) : array(); // 기본 쿼리 인수 $args = 배열( '포스트 유형' => '워크시트', '게시물_페이지당' => -1, // 모든 게시물을 가져옵니다. ); // 용어가 선택되면 쿼리를 수정합니다. if (!empty($taxonomy) && !empty($terms)) { $args['tax_query'] = 배열( 정렬( '분류' => $분류, '필드' => '강타', '용어' => $terms, // 선택한 용어의 배열을 전달합니다. '연산자' => 'IN', // 선택한 용어 중 하나와 일치 ), ); } // WP_Query를 실행하여 게시물을 가져옵니다. $쿼리 = 새로운 WP_Query($args); // 게시물이 발견되었는지 확인 if ($query->have_posts()) { $html = ''; while ($query->have_posts()) { $query->the_post(); // 게시물 HTML을 출력합니다. $html .= '<div>
위 내용은 플러그인을 사용하지 않고 AJAX를 사용하여 WordPress에서 태그로 여러 게시물을 필터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!