Если вы пытаетесь что-то вывести, если флажок установлен, используйте:
<?php if(in_array('news', get_field('checkbox') )): ?>
<h1>News was ticked!</h1>
<?php endif; ?>
Если вы пытаетесь просто отобразить список отмеченных опций, используйте это:
<p>Categories: <?php get_field('checkbox'); ?></p>
Это даст вам массив значений, которыми вы можете управлять с помощью foreach
объявления. Использование the_field('checkbox')
даст вам разделенную запятыми строку параметров, которые вы также можете разделить.
Я бы также предложил вам зайти на сайт ACF и просмотреть документацию. На большинство вопросов такого типа будут даны достаточно подробные ответы, и разработчик также активно участвует в его форумах поддержки.
РЕДАКТИРОВАТЬ: Если вы хотите, чтобы список доступных опций выводился на страницу для генерации динамического запроса, у меня есть только вещь. Это фрагмент, который я только что построил вчера для получения списка мета-значений из заданного ключа настраиваемого поля (используя ACF). Я сделал это довольно общим для вас. Есть еще один кусок JS для обработки ajax-запроса и довольно запутанная часть php, которая выводит полученные сообщения. Я не могу переписать их - JS - это стандартный ajax-вызов, обращенный к WP, и PHP - это беспорядок условных проверок для 12 различных полей ACF, которые мы отображаем (2 из которых являются повторителями). Основы этого кода здесь, кнопка onClick
вызывает функцию ajax в отдельном файле JS, а php для самой функции ajax по существу устанавливает массив аргументов для запроса,$selectedOption
или $_POST['option']
как meta_value. Это передается в a new WP_Query( $args );
, который затем используется в цикле, выход которого возвращается в js через add_action('wp_ajax_the_ajax_hook', 'fetch_option_list');
и 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>';
}