• 09-09-2014, 21:18:59
    #1
    Merhaba arkadaşlar siteme metabox alanı ekledim çok güzel bir şekilde çalışıyor

    ikinci metabox alanı yapmak istiyorum ancak bu kodların aynısını yapıştırdığımda var olduğu hatası veriyor bunu nasıl düzenleyebilirim ?





    <?php
    /*
     * Plugin Name: Metabox
     * Author: Burak Şahin
     * Author URI: http://buraksah.in/
     */
    
    $prefix = 'ozellikler_'; 
    
    $meta_box = array( 
        'id' => 'my-meta-box', 
        'title' => 'Custom meta box', 
        'page' => 'post', 
        'context' => 'normal', 
        'priority' => 'high', 
        'fields' => array( 
            array( 
                'name' => 'Text box', 
                'desc' => 'Enter something here', 
                'id' => $prefix . 'text', 
                'type' => 'text', 
                'std' => 'Default value 1' 
            ), 
            array( 
                'name' => 'Textarea', 
                'desc' => 'Enter big text here', 
                'id' => $prefix . 'textarea', 
                'type' => 'textarea', 
                'std' => 'Default value 2' 
            ), 
            array( 
                'name' => 'Select box', 
                'id' => $prefix . 'select', 
                'type' => 'select', 
                'options' => array('Option 1', 'Option 2', 'Option 3') 
            ), 
            array( 
                'name' => 'Alt Yazı Seçeneği', 
                'id' => $prefix . 'dil', 
                'type' => 'radio', 
                'options' => array( 
                    array('name' => 'Alt Yazısız ', 'value' => 'altyazisiz'), 
                    array('name' => 'Alt Yazılı ', 'value' => 'turkcealtyazi') 
                ) 
            ), 
                    array( 
                'name' => 'Video Kalitesi', 
                'id' => $prefix . 'videokalitesi', 
                'type' => 'radio', 
                'options' => array( 
                    array('name' => '240p ', 'value' => 'p240p'), 
                    array('name' => '360p ', 'value' => 'p320p'),     
                    array('name' => '720p ', 'value' => 'p720p'), 
                    array('name' => '1080p ', 'value' => 'p1080p') 
                ) 
            ), 
             
             
            array( 
                'name' => 'Checkbox', 
                'id' => $prefix . 'checkbox', 
                'type' => 'checkbox' 
            ) 
        ) 
    ); 
    
    add_action('admin_menu', 'mytheme_add_box'); 
    
    // Add meta box 
    function mytheme_add_box() { 
        global $meta_box; 
         
        add_meta_box($meta_box['id'], $meta_box['title'], 'mytheme_show_box', $meta_box['page'], $meta_box['context'], $meta_box['priority']); 
    } 
    
    // Callback function to show fields in meta box 
    function mytheme_show_box() { 
        global $meta_box, $post; 
         
        // Use nonce for verification 
        echo '<input type="hidden" name="mytheme_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />'; 
         
        echo '<table class="form-table">'; 
    
        foreach ($meta_box['fields'] as $field) { 
            // get current post meta data 
            $meta = get_post_meta($post->ID, $field['id'], true); 
             
            echo '<tr>', 
                    '<th style="width:20%"><label for="', $field['id'], '">', $field['name'], '</label></th>', 
                    '<td>'; 
            switch ($field['type']) { 
                case 'text': 
                    echo '<input type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['std'], '" size="30" style="width:97%" />', 
                        '<br />', $field['desc']; 
                    break; 
                case 'textarea': 
                    echo '<textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="4" style="width:97%">', $meta ? $meta : $field['std'], '</textarea>', 
                        '<br />', $field['desc']; 
                    break; 
                case 'select': 
                    echo '<select name="', $field['id'], '" id="', $field['id'], '">'; 
                    foreach ($field['options'] as $option) { 
                        echo '<option', $meta == $option ? ' selected="selected"' : '', '>', $option, '</option>'; 
                    } 
                    echo '</select>'; 
                    break; 
                case 'radio': 
                    foreach ($field['options'] as $option) { 
                        echo '<input type="radio" name="', $field['id'], '" value="', $option['value'], '"', $meta == $option['value'] ? ' checked="checked"' : '', ' />', $option['name']; 
                    } 
                    break; 
                case 'checkbox': 
                    echo '<input type="checkbox" name="', $field['id'], '" id="', $field['id'], '"', $meta ? ' checked="checked"' : '', ' />'; 
                    break; 
            } 
            echo     '<td>', 
                '</tr>'; 
        } 
         
        echo '</table>'; 
    } 
    
    add_action('save_post', 'mytheme_save_data'); 
    
    // Save data from meta box 
    function mytheme_save_data($post_id) { 
        global $meta_box; 
         
        // verify nonce 
        if (!wp_verify_nonce($_POST['mytheme_meta_box_nonce'], basename(__FILE__))) { 
            return $post_id; 
        } 
    
        // check autosave 
        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { 
            return $post_id; 
        } 
    
        // check permissions 
        if ('page' == $_POST['post_type']) { 
            if (!current_user_can('edit_page', $post_id)) { 
                return $post_id; 
            } 
        } elseif (!current_user_can('edit_post', $post_id)) { 
            return $post_id; 
        } 
         
        foreach ($meta_box['fields'] as $field) { 
            $old = get_post_meta($post_id, $field['id'], true); 
            $new = $_POST[$field['id']]; 
             
            if ($new && $new != $old) { 
                update_post_meta($post_id, $field['id'], $new); 
            } elseif ('' == $new && $old) { 
                delete_post_meta($post_id, $field['id'], $old); 
            } 
        } 
    }  
    ?>
  • 22-11-2015, 18:11:10
    #2
    aynı sorun bendede oldu çözümü varı ?
  • 22-11-2015, 21:22:04
    #3
    Metabox alanı derken ne demek istediğniizi anlamadım. Bana bir ss atabilir misiniz?
  • 22-11-2015, 21:29:57
    #4
    'id' => 'my-meta-box',

    kısmını değiştirip öyle deneyin arkadaşlar.