Si está intentando generar algo si se marcó una casilla de verificación, use:
<?php if(in_array('news', get_field('checkbox') )): ?>
<h1>News was ticked!</h1>
<?php endif; ?>
Si está intentando mostrar una lista de las opciones marcadas, use esto:
<p>Categories: <?php get_field('checkbox'); ?></p>
Esto le dará una serie de valores que puede administrar con una declaración foreach
. El uso de the_field('checkbox')
le dará una cadena separada por comas de las opciones que también puede dividir.
También le sugeriría que vaya al sitio de ACF y revise la documentación. La mayoría de las preguntas de este tipo serán respondidas allí con un detalle decente, y el desarrollador también está activo en sus foros de soporte.
EDITAR: Si desea que la lista de opciones disponibles se muestre en una página para generar una consulta dinámica, tengo lo que necesito. Esta es una pieza que acabo de crear ayer para extraer una lista de valores meta de una clave de campo personalizada dada (usando ACF). Lo he hecho bastante genérico para ti. Hay otra parte de JS para manejar la solicitud de ajax, y una pieza bastante compleja de php que genera las publicaciones resultantes. Realmente no puedo reescribirlos: el JS es una llamada / respuesta ajax WP estándar orientada hacia adelante, y el PHP es un lío de verificaciones condicionales para los 12 campos ACF diferentes que estamos mostrando (2 de los cuales son repetidores). Los conceptos básicos son este código aquí, el botón onClick
llama a la función ajax en un archivo JS separado, y el php para la propia función ajax esencialmente establece una matriz de argumentos para la consulta, uno de los cuales es $selectedOption
o $_POST['option']
como meta_valor. Eso se alimenta a un new WP_Query( $args );
, que luego se usa en un bucle, cuya salida se retroalimenta al js a través de add_action('wp_ajax_the_ajax_hook', 'fetch_option_list');
y 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>';
}