我想要达到的是
我创建了一个custom post(offer), 我还有一个custom post created (listing).
我想在列表中添加一个元框,它将接收所有报价的检查列表
我实现了这一目标,如所示
image 使用下面的代码。
function op_register_menu_meta_box() {
add_meta_box(
\'op-menu-meta-box-id\',
esc_html__( \'Custom offers Checklist (select any 2)\', \'text-domain\' ),
\'op_render_menu_meta_box\',
\'listing\'
);
}
add_action( \'add_meta_boxes_listing\', \'op_register_menu_meta_box\' );
function op_render_menu_meta_box() {
// Metabox content
$getPostsToSelect = get_posts(\'post_type=offers&numberposts=-1\');
foreach ($getPostsToSelect as $aPostsToSelect) {
?>
<label>
<input
type=\'checkbox\'
name=\'yourcustom_meta[]\'
class=\'postsToSelect\'
value=\'<?php echo $aPostsToSelect->ID ?>\'
/>
<?php echo $aPostsToSelect->post_title;
?>
</label><br />
<?php
}}
现在我想从几个报价清单中得到的是,我们可以通过检查来选择两个报价。
Q1. How to save the checked boxes?
Q2. How to use them *(the checked only) later to display on single.php?
然后,当我们发布列表时,选中的报价将打印在
archive-offers.php我需要做到这一点,请帮助我!
最合适的回答,由SO网友:Nathan Johnson 整理而成
您可以在函数中使用PHP。使用WordPress挂钩插入内联JavaScript(包括jQuery)的php文件。
在您的示例中,可以使用admin_print_scripts-post.php
操作钩子打印内嵌jQuery,如下所示:
function wpse_admin_print_scripts_edit() {
echo "<script>var limit = 2;\' .
\'jQuery(\'input.single-checkbox\').on(\'change\', function(evt) {\' .
\'if(jQuery(\'input.single-checkbox:checked\').length > limit) {\' .
\'this.checked = false;\' .
\'}\' .
\'});</script>";
}
add_action( \'admin_print_scripts-post.php\', \'wpse_admin_print_scripts_edit\' );