Izpratne WordPress Custom Meta Box
Iepriekšējā ziņojumā mēs esam runājuši par WordPress pielāgoto lauku, kas ļauj pievienot un izvadīt jaunu ierakstu ziņojumā, izmantojot pielāgoto lauku lodziņu, ko WordPress nodrošina pēc rediģēšanas ekrānā. Tomēr, ja jūs neizmantojat pielāgoto lauku lodziņu (mums visiem ir mūsu individuālās preferences), šeit ir alternatīva: varat izveidot meta lodziņu.
Meta kaste ir a pielāgots lodziņš mēs paši radām, kas var būt satur ieeju vai citu interaktīvu lietotāja interfeisu, lai pievienotu jaunus ierakstus ziņas vai lapas. Lai veiktu to pašu, varat izmantot meta lodziņu, nevis lodziņu Custom Field. Redzēsim, kā to izveidot.
Vairāk par Hongkiat.com:
- Pielāgot multivides augšupielādes direktoriju programmā WordPress
- Pielāgot WordPress redaktoru stilus
- Pielāgot “Sveiki” WordPress administratora joslā
- Reģistrējiet pielāgotu taksonomiju WordPress lietotājiem
- Displeja ikonas WordPress izvēlnē
Meta kastes izveide
WordPress nodrošina API funkciju, ko sauc par add_meta_box
, kas ļauj mums nekavējoties izveidot meta lodziņu. Tas ir visspēcīgākais pamatformā.
funkcija add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post'); add_action ('add_meta_boxes', 'add_post_reference'); funkcija atsauceCallBack () echo 'Hello World'
The add_meta_box
ņem četrus parametrus: ID, meta lodziņa nosaukumu, atzvanīšanas funkciju, kas izsauks „Hello World”, un pasta veidu, kuru mēs vēlamies parādīt. Šādā gadījumā post rediģēšanas lapā piešķiram jaunu meta lodziņu (tas darbojas arī ar lapām).
Post rediģēšanas sadaļā atradīsiet jaunu lodziņu šādi.
Jaunais meta lodziņš, kā jūs varat redzēt iepriekš, parādīsies zem WYSIWYG redaktora. Ja vēlaties to pievienot sānjoslā, pēc ziņojuma parametra varat pievienot 'pusi' un kopā ar 'augsto', ja vēlaties to novietot sānjoslas augšpusē.
funkcija add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post', 'side', 'high'); add_action ('add_meta_boxes', 'add_post_reference');
Tagad jūs atradīsiet to virs Publicēt lodziņš…
Tagad, lai aizstātu tekstu „Hello World”. Pievienosim jaunus ierakstus tādiem elementiem kā ievades lauks.
Šajā piemērā mēs pievienosim divus ievades laukus, kas sastāv no vienas, lai pievienotu atsauces nosaukumu, bet citu - atsauces saitei:
funkcija atsauceCallBack ($ 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); atbalss"; atbalss"; atbalss“. 'Pievienot atsauces nosaukumu'. '
"; atbalss"; atbalss"; atbalss“. “Pievienot atsauci uz atsauci”.
";
Atjauniniet post rediģēšanas lapu, un jums vajadzētu redzēt šīs divas ievades.
The $ name_value
un $ link_value
mainīgais iegūs ierakstus no datu bāzes un aizpildīs tos ievades laukos. Lai iegūtu ierakstus datubāzē, mums būs jāizveido funkcija.
Mums ir jāpievieno dažas koda rindas, kas aizpildīs šos ierakstus, kas droši ievadīti datubāzē. “Droši” šeit nozīmē likumīgu un atļautu ieceļošanu (nevis to, kas nāk no hakeriem vai citiem neatļautiem darbiniekiem). Lai saglabātu ierakstu, mums būs jāizveido jauna funkcija. Nosauksim funkciju: saglabāt_post_reference
, tāpat kā.
funkcija save_post_reference ($ post_id) add_action ('save_post', 'save_post_reference');
Kā jau minēts, mums drošības nolūkos ir jāpārbauda dažas lietas:
(1) Mums būs jāpārbauda, vai lietotājs var rediģēt ziņu.
ja (! current_user_can ('edit_post', $ post_id)) atgriezties;
(2) Mums arī vajag pārbaudiet, vai ir iestatīta Nonce.
ja (! isset ($ _POST ['reference_nonce'])) atgriezties; if (! wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box')) atgriezties;
(3) Tad mums ir jānovērš datu automātiska saglabāšana. Saglabāt var tikai tad, kad “Saglabāt” vai “Atjaunināt” poga ir noklikšķināta.
ja (definēts ('DOING_AUTOSAVE') && DOING_AUTOSAVE) atgriezties;
(4) Mums būs arī jānodrošina, ka mūsu divi ieguldījumi, post_reference_name
un post_reference_link
, ir iestatīti un gatavi, pirms mēs iesniedzam ierakstus.
ja (! isset ($ _POST ['post_reference_name']) ||! isset ($ _POST ['post_reference_link'])) atgriezties;
(5) Un ierakstam nevajadzētu būt negaidītām rakstzīmēm, kas var apdraudēt tīmekļa vietnes drošību. Lai to pārbaudītu, varat izmantot iebūvēto funkciju WordPress sanitize_text_field
.
$ reference_name = sanitize_text_field ($ _POST ['post_reference_name']); $ reference_link = sanitize_text_field ($ _POST ['post_reference_link']);
Labi, tagad mēs esam gatavi saglabāt ierakstus datubāzē:
update_post_meta ($ post_id, '_post_reference_name', $ reference_name); update_post_meta ($ post_id, '_post_reference_link', $ reference_link);
Tagad jūs varat to izmēģināt: ievada kādu saturu ievades laukos un noklikšķiniet uz “Atjaunināt” poga, lai tos saglabātu.
Secinājums
Mēs tikko esam izveidojuši meta lodziņu, kas sastāv no divām ieejām. Varat vēl vairāk paplašināt lodziņu ar cita veida ieejām, piemēram, radio pogu vai izvēles lodziņu. Šis piemērs var būt ļoti vienkāršs, bet, tiklīdz jūs to saņemsiet, jūs varat izmantot šo meta lodziņu daudz sarežģītākiem lietojumiem. Informējiet mūs, ja jūs to izmantosiet un ko jūs to izmantosiet.