Wenn Sie versuchen, etwas auszugeben, wenn ein Kontrollkästchen aktiviert war, verwenden Sie:
<?php if(in_array('news', get_field('checkbox') )): ?>
<h1>News was ticked!</h1>
<?php endif; ?>
Wenn Sie nur eine Liste der aktivierten Optionen anzeigen möchten, verwenden Sie Folgendes:
<p>Categories: <?php get_field('checkbox'); ?></p>
Dadurch erhalten Sie eine Reihe von Werten, die Sie mit einer foreach
Deklaration verwalten können. Wenn the_field('checkbox')
Sie verwenden, erhalten Sie eine durch Kommas getrennte Zeichenfolge der Optionen, die Sie ebenfalls aufteilen können.
Ich würde auch vorschlagen, dass Sie auf die Website von ACF gehen und die Dokumentation durchgehen. Die meisten Fragen dieser Art werden dort ausführlich beantwortet, und der Entwickler ist auch in seinen Support-Foren aktiv.
BEARBEITEN: Wenn Sie möchten, dass die Liste der verfügbaren Optionen auf einer Seite zum Generieren einer dynamischen Abfrage ausgegeben wird, habe ich genau das Richtige. Dies ist ein Teil, den ich gestern erstellt habe, um eine Liste von Metawerten aus einem bestimmten benutzerdefinierten Feldschlüssel (mithilfe von ACF) abzurufen. Ich habe es ziemlich allgemein für dich gemacht. Es gibt einen weiteren Teil von JS für die Bearbeitung der Ajax-Anfrage und ein ziemlich kompliziertes Stück PHP, das die resultierenden Beiträge ausgibt. Ich kann diese nicht wirklich umschreiben - der JS ist ein Standard-WP-Ajax-Aufruf / eine Antwort mit Vorwärtsrichtung, und das PHP ist ein Durcheinander von bedingten Überprüfungen für die 12 verschiedenen ACF-Felder, die wir anzeigen (von denen 2 Repeater sind). Die Grundlagen sind dieser Code hier, die Schaltfläche onClick
ruft die Ajax-Funktion in einer separaten JS-Datei auf, und das PHP für die Ajax-Funktion selbst erstellt im Wesentlichen ein Array von Argumenten für die Abfrage.$selectedOption
oder $_POST['option']
als meta_value. Das wird a zugeführt new WP_Query( $args );
, das dann in einer Schleife verwendet wird, deren Ausgang über add_action('wp_ajax_the_ajax_hook', 'fetch_option_list');
und zu js zurückgeführt wird 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>';
}