定制MetaBox:食品菜单项可用日期

时间:2012-03-10 作者:Brock

我希望创建一个带有复选框的自定义元数据库,用于显示项目可用性。我已经包括了两张我希望实现的示例图像。任何帮助都将不胜感激。

此外,我真的只是想知道从哪里开始解决这个问题。有关更多信息,我将创建一个特定于菜单项的自定义帖子类型。这是给当地一家纸杯蛋糕面包店的。

谢谢

http://brocknunn.com/help-pics/Menu-Dates.jpg

http://brocknunn.com/help-pics/checkbox.png

2 个回复
SO网友:Ryan

如果已创建自定义帖子类型,则可以像这样添加元框:

add_action( \'add_meta_boxes\', \'add_dates\' );

function add_dates() {
    add_meta_box(\'date_select\', \'Dates\', \'date_select\', \'customposttype\', \'side\', \'default\');
}

function date_select() {
    global $post;
    echo \'<input type="hidden" name="date_select_meta_noncename" id="date_select_meta_noncename" value="\' .
    wp_create_nonce( plugin_basename(__FILE__) ) . \'" />\';
    $gender = get_post_meta($post->ID, \'_date\', true);

    // Insert checkboxes HTML
}
然后需要保存自定义元数据。

function save_dates($post_id, $post) {

    if ( !wp_verify_nonce( $_POST[\'date_select_meta_noncename\'], plugin_basename(__FILE__) )) {
        return $post->ID;
    }

    if ( !current_user_can( \'edit_post\', $post->ID ))
        return $post->ID;

    $date_meta[\'_date\'] = $_POST[\'_date\'];

    foreach ($date_meta as $key => $value) { 

        if( $post->post_type == \'revision\' ) return; 
        $value = implode(\',\', (array)$value);         
        if(get_post_meta($post->ID, $key, FALSE)) {
            update_post_meta($post->ID, $key, $value);
        } else {
            add_post_meta($post->ID, $key, $value);
        }        
        if(!$value) delete_post_meta($post->ID, $key); 
    }
}

add_action(\'save_post\', \'save_dates\', 1, 2);
当然,您需要为自定义帖子类型设置它。

(警告:未测试)

SO网友:fxfuture

这是一个关于添加自定义元框的很棒的教程-http://www.netmagazine.com/tutorials/user-friendly-custom-fields-meta-boxes-wordpress

结束

相关推荐

你能让一个定制的metabox域成为保存新帖子的必填项吗?

我正在处理一个自定义的帖子类型,我删除了所有标准的wordpress表单项,并从零开始使用自定义的元框,除了标题字段。在我的情况下,选择一些自定义元下拉选择非常重要。是否有一个简单的解决方案,让他们在发布项目之前必须选择一些项目?我认为javascript是最简单的解决方案,但最好让用户知道发生了什么,比如如果他们试图发布但尚未选中,则突出显示框,另一个问题是下拉菜单,默认情况下,即使他们没有选择一个值,也已经选择了一个值