2015-02-05 4 views
0

Я тема WP dev nobie, и у меня проблемы с сохранением значений мета-полей.Заданные значения метаданных для сохранения значений - Устаревшие: функция ereg() и более

Я нашел учебник, в котором объясняется, как это сделать.

Я включил файл под названием заказные мета-боксы-save.php внутри моей functions.php следующим кодом:

<?php 
function save_postdata($post_id) { 
    global $post, $new_meta_boxes, $page_settings, $blogroll, $post_settings, $team_info, $slide_info, $meta_box_groups; 


    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { 
     return $post_id; 
    } 

    if(defined('DOING_AJAX') && DOING_AJAX) { //Prevents the metaboxes from being overwritten while quick editing. 
     return $post_id; 
    } 

    if(ereg('/\edit\.php', $_SERVER['REQUEST_URI'])) { //Detects if the save action is coming from a quick edit/batch edit. 
     return $post_id; 
    } 
    foreach($meta_box_groups as $group) { 
     foreach($group as $meta_box) { 

      if(isset($_POST[$meta_box['name'].'_noncename'])){ 
       if (!wp_verify_nonce($_POST[$meta_box['name'].'_noncename'], $meta_box['name'].'-meta')) { 
        error_log(print_r($meta_box, TRUE).'{err_end}'); 
        return $post_id; 
       } 
      } 

      if (isset($_POST['post_type']) && 'page' == $_POST['post_type']) { 
       if (!current_user_can('edit_page', $post_id)) 
        return $post_id; 
      } else { 
       if (!current_user_can('edit_post', $post_id)) 
        return $post_id; 
      } 

      if(isset($_POST[$meta_box['name'].'_value'])){ 
       $data = $_POST[$meta_box['name'].'_value']; 
      } 

      if(get_post_meta($post_id, $meta_box['name'].'_value') == "") 
       add_post_meta($post_id, $meta_box['name'].'_value', $data, true); 
      elseif($data != get_post_meta($post_id, $meta_box['name'].'_value', true)) 
       update_post_meta($post_id, $meta_box['name'].'_value', $data); 
      elseif($data == "" || $data == $meta_box['std']) 
       delete_post_meta($post_id, $meta_box['name'].'_value', get_post_meta($post_id, $meta_box['name'].'_value', true)); 

     } // end foreach 
    } // end foreach 
} // end save_postdata 

add_action('save_post', 'save_postdata'); 
?> 

После удара опубликовать постов и страниц я получаю много ошибок при мой wp_debug включен:

Deprecated: Function ereg() is deprecated in /home/creat/domains/tester.net/public_html/re/wp-content/themes/rev2/includes/custom-meta-boxes-save.php on line 14 

Notice: Undefined variable: data in /home/creat/domains/tester.net/public_html/re/wp-content/themes/rev2/includes/custom-meta-boxes-save.php on line 41 

Notice: Undefined variable: data in /home/creat/domains/tester.net/public_html/re/wp-content/themes/rev2/includes/custom-meta-boxes-save.php on line 43 

Warning: Cannot modify header information - headers already sent by (output started at /home/creat/domains/tester.net/public_html/re/wp-content/themes/rev2/includes/custom-meta-boxes-save.php:41) in /home/creative/domains/ctproject.net/public_html/sa2/wp-admin/post.php on line 233 

Warning: Cannot modify header information - headers already sent by (output started at /home/creat/domains/tester.net/public_html/re/wp-content/themes/rev2/includes/custom-meta-boxes-save.php:41) in /home/creative/domains/ctproject.net/public_html/sa2/wp-includes/pluggable.php on line 1178 

Помощь очень нужна, как мой срок очень близко.

Спасибо!

ответ

0

Использование preg_match вместо EREG

например. preg_match('/edit.php/', $_SERVER['SCRIPT_NAME'])

Вам нужно определить $ data, используя global в верхней части функции?

 Смежные вопросы

  • Нет связанных вопросов^_^