2012-04-24 5 views
2

Я пытаюсь добавить дополнительное поле в свою Add Post или Add Page, где я вставляю значение этого поля в добавленный вручную столбец, добавленный в таблицу wp_posts в базы данных.WordPress - добавьте дополнительный столбец в wp_posts и опубликуйте его

Я знаю, что могу использовать пользовательские полевые шаблоны, но проблема в том, что эти настраиваемые поля вставляют значения в wp_postmeta, а не в wp_post, и мне нужно все для одного сообщения в одной таблице.

Любая идея, как это сделать?

ответ

2

Если вы уже вручную добавили поле в таблицу wp_posts, вам просто нужно использовать несколько крючков, чтобы добавить поле на страницу сообщений, а затем сохранить его.

// Function to register the meta box 
function add_meta_boxes_callback($post_type, $post) { 
    add_meta_box('my_field', 'My Field', 'output_my_meta_box', 'post'); 
} 
add_action('add_meta_boxes', 'add_meta_boxes_callback', 10, 2); 

// Function to actually output the meta box 
function output_my_meta_box($post) { 
    echo '<input type="text" name="my_field" value="' . $post->my_field . '" />'; 
} 

// Function to save the field to the DB 
function wp_insert_post_data_filter($data, $postarr) { 
    $data['my_field'] = $_POST['my_field']; 
    return $data; 
} 
add_filter('wp_insert_post_data', 'wp_insert_post_data_filter', 10, 2); 
+0

Функция wp_insert_post_data_filter должна возвращать массив $ data. (проверено в версии 4.1.1) – mimarcel

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