Пытаюсь добавить дополнительное поле в редактор изображений gallery recall (там где задаем заголовок и описание).
Вставить поле для ввода не проблема, а вот как сохранять значение этого поля я пока не понял.
Допустим, я создал текстовое поле "content2". Как мне заставить его работать по аналогии с полем "content" ? Как его правильно объявить?
function step_one_redactor_image(){
global $user_ID,$wpdb;
$post_id = $_POST['post_id'];
$post_array = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."posts WHERE ID='$post_id'");
$title = $post_array->post_title;
$content = $post_array->post_content;
$content2 = $post_array-> ???
а, для фото действительно нельзя туда сохранять данные.
Значит надо использовать произвольное поле.
в первой функции получайте данные из функции $content2 = get_post_meta($post_id,'content-two',1);
а во второй фунции обновляйте данные в ней через update_post_meta($post_id,'content-two');
Странно. Ведь поля профиля вызываются как раз через get_post_meta.
Андрей, вообще суть всех манипуляций в следующем:
Мне нужен рубрикатор для галерей. Самым простым способом реализации является добавление пользовательского поля "select". То есть юзер при редактировании названия и описания определяет также и категорию для изображения. Дальше уже можно брать данные из этого поля для сортировки по категориям.
В разделе "идеи" я публиковал идею реализации рубрик, можно сделать все вышеописанным способом. Звучит не сложно, но я нуб в php, поэтому и прошу помощи.
В общем если сделаете, то идею можно закрывать, а 1500р ваши
.
Произвольные поля теперь должны работать, но что-то я все равно делаю не так...
Получить данные get_post_meta получается, а вот как их обновить не пойму. При редактировании формы нажатие на кнопку "обновить" ничего не происходит.
Может еще что-то надо добавить?
Вот код:
function step_one_redactor_image(){
global $user_ID,$wpdb;
$post_id = esc_sql($_POST['post_id']);
$post_array = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."posts WHERE ID='$post_id'");
$title = $post_array->post_title;
$content = $post_array->post_content;
$category = get_post_meta($post_id,'category_one',1);
if($user_ID){
$log['result']=100;
$log['content']= "
<div style='display:block;' class='float-window-recall'>
<a href='#' class='close-popup'></a>
<h3>Category</h3>
<input type='text' name='category_one' id='category_edit' style='width:95%;' value='".$category."'>
<h3>".__("Name",'rcl').":</h3>
<input type='text' name='post_title' id='post_title_edit' style='width:95%;' value='".$title."'>
<h3>".__("Description",'rcl').":</h3>
<textarea name='post_content' id='content_area_edit' rows='10' style='width:95%;'>".$content."</textarea>
<input type='hidden' id='post_id_edit' value='".$post_id."'>
".rcl_get_button(__('Update','rcl'),'#',array('icon'=>false,'class'=>'update-image','id'=>'add-comment','attr'=>'style=float:right;'))."
</div>";
}
echo json_encode($log);
exit;
}
function step_two_redactor_image(){
global $user_ID,$wpdb;
if(!$user_ID) exit;
$post_id = esc_sql($_POST['post_id']);
$post_title = esc_sql($_POST['post_title']);
$post_content = esc_sql($_POST['post_content']);
$post_array = array();
$post_array['post_title'] = $post_title;
$post_array['post_content'] = $post_content;
update_post_meta($post_id,'category_one');
$post_array = apply_filters('rcl_pre_edit_post',$post_array);
$result = $wpdb->update(
$wpdb->prefix.'posts',
$post_array,
array('ID'=>$post_id)
);
if($result){
$log['post_id']=$post_id;
$log['post_title']=$post_title;
$log['post_content']=$post_content;
$log['otvet']=100;
}
echo json_encode($log);
exit;
}
