如果您试图在选中复选框的情况下输出某些内容,请使用:
<?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\'s site 并查看文档。这种类型的大多数问题都会在那里得到相当详细的回答,开发人员也会活跃在他的支持论坛中。
编辑:如果您希望将可用选项列表输出到一个页面中,以生成动态查询,那么我只有一件事。这是我昨天刚刚编写的一篇文章,用于从给定的自定义字段键(使用ACF)中提取元数据列表。我已经为你做了相当通用的。还有一块JS用于处理ajax请求,还有一块相当复杂的php用于输出结果帖子。我真的无法重写这些内容——JS是标准的WP前向ajax调用/响应,而PHP是对我们显示的12个不同ACF字段(其中2个是转发器)的一堆条件检查。最基本的是这里的代码,按钮onClick
在单独的JS文件中调用ajax函数,ajax函数本身的php本质上为查询设置了一个参数数组,其中之一是$selectedOption
或$_POST[\'option\']
作为meta\\u值。这会给new WP_Query( $args );
, 然后在循环中使用,其输出通过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>\';
}