Я б рекомендував так.
Ви маєте (і повинні) мати власне уявлення про те, щоб перевірити походження даних та наміри користувача. Якщо у вас є лише одне поняття для метабокса - тоді у вас виникають проблеми, якщо це метабокс буде видалено (не те саме, що приховано). Якщо вилучено, друге метабокс (або, принаймні, повинен) ніколи не збережеться, оскільки ніколи більше не надсилається.
Звичайно, з точки зору безпеки, нічого не додається другим питанням, якщо ви не хочете оновлювати лише один метабокс, а не інший: припущення повинні бути унікальними для дії .
Редагувати
Як було зазначено, для екрана редагування публікацій існує лише одна форма. Отже, теоретично вам потрібне лише одне поле без знань, за допомогою якого можна перевірити дію та походження даних. Однак, оскільки метабокси можна видалити - маючи поле без уваги лише в одному метабоксі, немає гарантії, що немає. Помістивши нон-поле у кожну метаполею, ви можете перевірити, чи були дані з цього метабокса надіслані (а насправді є звідки ви вважаєте, що це є) перед обробкою будь-яких даних. Наприклад:
save_post_call_back($post_id){
//Check this is not an auto-save route
if(nonce of metabox1 present and valid){
//Process data from metabox1
}else{
//Either metabox removed - or invalid nonce. Take no action.
}
if(nonce of metabox2 present and valid){
//Process data from metabox2
}else{
//Either metabox removed - or invalid nonce. Take no action.
}
}
Ім'я поля Nonce повинен бути унікальним для METABOX (і не вступають в протиріччя з будь-якими іншими тимчасовими значеннями, які присутні на формі від інших плагінів).
Нонсо значення має бути унікальним дію (і це , як правило , має включати в себе походження даних (наприклад , редагування-пост , на відміну від швидкого редагування)). Я зазвичай включаю ідентифікатор допису.
<form>
на сторінці адміністратора є лише один тег. має бути поле нонсенс унікальним для форми чи ні? tia, @Stephen