Начална » WordPress » Разбиране на WordPress персонализирана мета кутия

    Разбиране на WordPress персонализирана мета кутия

    В предишния пост говорихме за потребителското поле на WordPress, което ви позволява да добавяте и извеждате нов запис в пост с помощта на полето Custom Field, което WordPress предоставя в екрана за редактиране на пост. Ако обаче не ви харесва да използвате полето за персонализирано поле (всички ние имаме индивидуалните си предпочитания), ето една алтернатива: можете да създадете мета-кутия.

    Мета кутията е a персонализирано поле които ние създаваме сами, което може съдържа вход или друг интерактивен интерфейс за добавяне на нови записи от публикации или страници. Можете да използвате мета-кутията вместо полето Custom Field, за да направите същото. Нека видим как да създадем такава.

    Повече на Hongkiat.com:

    • Персонализиране на директорията за качване на носители В WordPress
    • Персонализирайте стиловете на редактора на WordPress
    • Персонализирайте “Здрасти” В администраторската лента на WordPress
    • Регистрирайте обичайната таксономия за потребителите на WordPress
    • Икони на дисплея В менюто на WordPress

    Създаване на мета кутия

    WordPress осигурява функция API, наречена add_meta_box, което ни позволява да създадем мета-кутия веднага. Това е тя в най-голяма форма.

     функция add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post');  add_action ('add_meta_boxes', 'add_post_reference'); функция referenceCallBack () echo 'Hello World' 

    Най- add_meta_box отнема четири параметъра: идентификатора, заглавието на мета кутията, функцията за обратно извикване, която ще извика "Hello World", и типа пост, който искаме да покажем. В този случай присвояваме нова мета-кутия в страница за редактиране на публикации (това също работи със страници).

    В секцията за редактиране след публикуването ще намерите ново поле, както следва.

    Новата мета кутия, както можете да видите по-горе, ще се появи под WYSIWYG редактора. Ако искате да го добавите в страничната лента, можете да добавите 'side' след параметъра post, а заедно с 'high', ако искате да го поставите в най-горната част на страничната лента.

     функция add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post', 'side', 'high');  add_action ('add_meta_boxes', 'add_post_reference'); 

    Сега ще го намерите над публикувам кутия…

    Сега да замените там текста "Hello World". Нека добавим елементи като поле за въвеждане за нов запис.

    В този пример ще добавим две полета за въвеждане, които се състоят от едно за добавяне на Референтното име и друго за Референтна връзка:

     функция referenceCallBack ($ post) wp_nonce_field ('reference_meta_box', 'reference_nonce'); $ name_value = get_post_meta ($ post-> ID, '_post_reference_name', true); $ link_value = get_post_meta ($ post-> ID, '_post_reference_link', true); ехо ""; ехо ""; ехо "

    ". „Добавете името на препратката“.

    "; ехо ""; ехо ""; ехо "

    ". „Добавете връзката на препратката“.

    ";

    Обновете страницата за редактиране на публикациите и ще видите тези два входа.

    Най- $ NAME_VALUE и $ link_value променливата ще извлече записите от базата данни и ще ги запълни във входните полета. За да получите записите в базата данни, ще трябва да създадем функция за това.

    Трябва да добавим няколко реда код, които ще попълнят безопасно записите, добавени чрез тези входове в базата данни. “благополучно” тук означава легитимен и разрешен достъп (не този, който идва от хакери или друг неупълномощен персонал). За да запишете записа, ще трябва да създадем нова функция. Да назовем функцията: save_post_reference, така.

     функция save_post_reference ($ post_id)  ​​add_action ('save_post', 'save_post_reference'); 

    Както споменахме, трябва да потвърдим няколко неща за целите на сигурността:

    (1) Ще трябва да проверим дали потребителят има възможност да редактира публикация.

     if (! current_user_can ('edit_post', $ post_id)) return;  

    (2) Ние също трябва Проверете дали е настроен Nonce.

     if (! isset ($ _POST ['reference_nonce'])) return;  if (! wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box')) return;  

    (3) След това трябва да предотвратим автоматичното запазване на данните. Запазването може да бъде направено само след като “Запази” или “Актуализация” е натиснат бутонът.

     if (дефинирано ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;  

    (4) Ние също така ще трябва да гарантираме, че нашите два входа, post_reference_name и post_reference_link, са настроени и готови, преди да изпратим записите.

     if (! isset ($ _POST ['post_reference_name']) ||! isset ($ _POST ['post_reference_link'])) return;  

    (5) И вписването трябва да бъде без никакви неочаквани знаци, които могат да застрашат сигурността на уебсайта. За да проверите това, можете да използвате вградената функция на WordPress sanitize_text_field.

     $ reference_name = sanitize_text_field ($ _POST ['post_reference_name']); $ reference_link = sanitize_text_field ($ _POST ['post_reference_link']); 

    Добре, сега сме готови да запазим записите в базата данни:

     update_post_meta ($ post_id, '_post_reference_name', $ reference_name); update_post_meta ($ post_id, '_post_reference_link', $ reference_link); 

    Сега можете да го изпробвате: въведете някакво съдържание в полетата за въвеждане и кликнете върху “Актуализация” , за да ги запишете.

    заключение

    Току-що създадохме мета-кутия, която се състои от два входа. Можете допълнително да разширите полето с други видове входове, като например радио бутона или полето за избор. Този пример може да е много основен, но щом веднъж се овладее, ще можете да използвате тази мета кутия за много по-сложни приложения. Кажете ни, ако ще използвате това и за какво ще го използвате.