Nếu bạn đang cố xuất ra thứ gì đó nếu hộp kiểm được chọn, hãy sử dụng:
<?php if(in_array('news', get_field('checkbox') )): ?>
<h1>News was ticked!</h1>
<?php endif; ?>
Nếu bạn đang cố gắng chỉ hiển thị danh sách các tùy chọn đã chọn, hãy sử dụng:
<p>Categories: <?php get_field('checkbox'); ?></p>
Điều này sẽ cung cấp cho bạn một loạt các giá trị mà bạn có thể quản lý bằng một foreach
khai báo. Việc sử dụng the_field('checkbox')
sẽ cung cấp cho bạn một chuỗi các tùy chọn được phân tách bằng dấu phẩy.
Tôi cũng đề nghị bạn vào trang của ACF và xem qua tài liệu. Hầu hết các câu hỏi thuộc loại này sẽ được trả lời ở đó một cách chi tiết và nhà phát triển cũng đang hoạt động trong các diễn đàn hỗ trợ của mình.
EDIT: Nếu bạn muốn danh sách các tùy chọn có sẵn xuất vào một trang để tạo truy vấn động, tôi chỉ có một điều. Đây là tác phẩm tôi mới xây dựng ngày hôm qua để lấy danh sách các giá trị meta từ khóa trường tùy chỉnh đã cho (sử dụng ACF). Tôi đã làm cho nó khá chung chung cho bạn. Có một đoạn mã JS khác để xử lý yêu cầu ajax và một đoạn php khá phức tạp tạo ra các bài đăng kết quả. Tôi thực sự không thể viết lại những điều đó - JS là cuộc gọi / phản hồi ajax hướng tới WP tiêu chuẩn và PHP là một mớ hỗn độn kiểm tra có điều kiện cho 12 trường ACF khác nhau mà chúng tôi đang hiển thị (2 trong số đó là các bộ lặp). Điều cơ bản là mã này ở đây, nút onClick
gọi hàm ajax trong một tệp JS riêng và php cho chính hàm ajax thiết lập một mảng các đối số cho truy vấn,$selectedOption
hoặc $_POST['option']
như meta_value. Điều đó được đưa đến một new WP_Query( $args );
, sau đó được sử dụng trong một vòng lặp, đầu ra của nó được đưa trở lại js thông qua add_action('wp_ajax_the_ajax_hook', 'fetch_option_list');
và 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>';
}