Jeśli próbujesz wygenerować coś, jeśli pole wyboru było zaznaczone, użyj:
<?php if(in_array('news', get_field('checkbox') )): ?>
<h1>News was ticked!</h1>
<?php endif; ?>
Jeśli próbujesz wyświetlić listę zaznaczonych opcji, użyj tego:
<p>Categories: <?php get_field('checkbox'); ?></p>
To da ci tablicę wartości, którymi możesz zarządzać za pomocą foreach
deklaracji. Użycie the_field('checkbox')
da ci ciąg opcji oddzielonych przecinkami, które możesz również podzielić.
Sugerowałbym również, aby przejść do strony ACF i przejrzeć dokumentację. Odpowiedzi na większość tego typu pytań zostaną udzielone w przyzwoitych szczegółach, a programista jest również aktywny na forach pomocy technicznej.
EDYCJA: Jeśli chcesz, aby lista dostępnych opcji wyświetlała się na stronie w celu wygenerowania dynamicznego zapytania, mam właśnie to. Jest to kawałek, który właśnie zbudowałem wczoraj, aby wyciągnąć listę meta wartości z danego niestandardowego klucza pola (używając ACF). Uczyniłem to dla ciebie dość ogólną. Jest jeszcze jedna część JS do obsługi żądania ajax i dość zawiły kawałek php, który wysyła wynikowe posty. Naprawdę nie mogę ich przepisać - JS jest standardowym wywołaniem / odpowiedzią ajaxową zwróconą do przodu w WP, a PHP to bałagan kontroli warunkowych dla 12 różnych pól ACF, które wyświetlamy (z których 2 są repeaterami). Podstawą jest tutaj ten kod, przycisk onClick
wywołuje funkcję ajax w osobnym pliku JS, a php samej funkcji ajax zasadniczo ustawia tablicę argumentów dla zapytania,$selectedOption
lub $_POST['option']
jako wartość_meta. To jest podawane do new WP_Query( $args );
pętli, która jest następnie wykorzystywana w pętli, której wyjście jest zwracane do js przez add_action('wp_ajax_the_ajax_hook', 'fetch_option_list');
i add_action( 'wp_ajax_nopriv_the_ajax_hook', 'fetch_option_list' ); //for non logged-in users
.
// Get list of meta_values for given meta_key and post_type (page, post, custom post type)
function meta_list($key = '', $type = '', $status = 'publish'){
global $wpdb;
$r = $wpdb->get_col($wpdb->prepare( "
SELECT DISTINCT pm.meta_value FROM {$wpdb->postmeta} pm
LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
WHERE pm.meta_key = '%s'
AND p.post_status = '%s'
AND p.post_type = '%s'
ORDER BY pm.meta_value ASC", $key, $status, $type));
return $r;
}
// ADD EG A FORM TO THE PAGE
function meta_ajax_frontend(){
$formlist = meta_list('metakey', 'posttype');
echo '<form id="optionSelect">';
echo '<select id="optionList" name="optionList">';
foreach($formlist as $fl => $val) {
echo '<option>' . $val . '</option>';
}
echo '</select>';
echo '<input name="action" type="hidden" value="the_ajax_hook" />
<input id="submit_button" value = "Search" type="button" onClick="fetch_meta();" />
</form>
<div id="meta_list">
Please select an option from the list
</div>';
}