我有一个自定义的帖子类型叫做“证词”。我试图做的是允许用户创建一个新的证词,然后从一个复选框列表中选择他希望在网站上显示该证词的页面。
我已成功创建复选框以列出所有网站页面,代码如下:
add_action("admin_init", "admin_init3");
function admin_init3(){
add_meta_box("credits_meta", "Choose on which pages to display", "myplugin_inner_custom_box", "testimonies", "normal", "low");
}
function myplugin_inner_custom_box( $post ) {
// we store data as an array, we need to unserialize it
$checkfield = maybe_unserialize( get_post_meta($post->ID, "checkfield", true) );
// Nonce to verify intention later
wp_nonce_field( \'save_quote_meta\', \'custom_nonce\' );
$pages = get_pages();
foreach ( $pages as $page ) { ?>
<input id="page_<?php echo $page->ID; ?>" type="checkbox" name="checkfield[]" value="<?php echo $page->ID; ?>" <?php if ( in_array($page->ID, (array) $checkfield) ) { ?> checked <?php } ?>/> <label for="page_<?php echo $page->ID; ?>"><?php echo $page->post_title; ?></label> <br>
<?php
}
}
//save the meta box action
add_action( \'save_post\', \'myplugin_meta_save\', 10, 2 );
//save the meta box
function myplugin_meta_save($post_id, $post)
{
if ( isset($_POST[\'checkfield\']) ) { // if we get new data
update_post_meta($post_id, "checkfield", $_POST[\'checkfield\'] );
}
}
然而,我对下一步有困难。我的想法是将复选框值放入变量中,然后检查当前页面id是否与其中一个值匹配。如果有,我将显示自定义帖子。虽然这一切都有点模糊,但我不确定我是否走对了路。
目前,我正在努力将复选框值传递到一个变量中,并将其输出。我有下面的代码,但它只是回应数组,数组,数组,数组。
<?php $checkboxes=get_post_meta($post->ID, "checklist", false);
if ($checkboxes) {
foreach($checkboxes as $checkbox) {
echo $checkbox;
}
} ?>
任何帮助都将不胜感激。
非常感谢。