Úvodná » WordPress » Pochopenie WordPress Vlastné Meta Box

    Pochopenie WordPress Vlastné Meta Box

    V predchádzajúcom príspevku sme sa rozprávali o vlastnom poli WordPress, ktoré umožňuje pridávať a odosielať novú položku do príspevku pomocou poľa vlastného poľa, ktoré WordPress poskytuje na obrazovke úprav. Ak však nepoužívate pole vlastného poľa (všetci máme svoje individuálne preferencie), tu je alternatíva: môžete vytvoriť metaúru.

    Značka meta je a prispôsobené pole ktoré vytvárame vlastné, čo môže obsahovať vstupné alebo iné interaktívne používateľské rozhranie na pridanie nových položiek príspevkov alebo stránok. Môžete použiť meta pole namiesto políčka Vlastné pole, aby ste urobili to isté. Pozrime sa, ako vytvoriť jeden.

    Viac informácií o Hongkiat.com:

    • Prispôsobte adresár nahrávania médií V aplikácii WordPress
    • Prispôsobte štýly editora WordPress
    • prispôsobenie “Zdravíčko” V administrátorskom paneli WordPress
    • Zaregistrujte vlastnú taxonómiu pre používateľov programu WordPress
    • Ikony zobrazenia V menu WordPress

    Vytvorenie Meta Boxu

    Program WordPress poskytuje funkciu rozhrania API add_meta_box, čo nám umožňuje okamžite vytvoriť metaúpravu. Je to v najvyššej základnej podobe.

     funkcia add_post_reference () add_meta_box ('post-reference', 'referencia', 'referenceCallBack', 'post');  add_action ('add_meta_boxes', 'add_post_reference'); funkcia referenceCallBack () echo 'Hello World' 

    add_meta_box má štyri parametre: ID, titul meta schránky, funkciu spätného volania, ktorá vyvola "Hello World" a typ príspevku, ktorý chceme zobraziť. V tomto prípade priradíme nové pole metadá na stránke na úpravu príspevkov (to funguje aj so stránkami).

    V sekcii pre úpravu textu nájdete nové pole, ktoré nasleduje.

    Nová metaznačka, ako vidíte vyššie, sa objaví pod editorom WYSIWYG. Ak ho chcete pridať do bočného panela, môžete pridať postranný parameter za post a spolu s "vysokým", ak ho chcete umiestniť na vrchnej strane bočného panela.

     funkcia add_post_reference () add_meta_box ('post-reference', 'referencia', 'referenceCallBack', 'post', 'side', 'high');  add_action ('add_meta_boxes', 'add_post_reference'); 

    Teraz ju nájdete nad publikovať box ...

    Teraz nahradiť text "Hello World" tam. Pridajme prvky ako vstupné pole pre nový záznam.

    V tomto príklade pridáme dve vstupné polia, ktoré pozostávajú z jedného pre pridanie referenčného názvu a ďalšieho pre referenčné prepojenie:

     funkcia 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); echo ',; echo ',; echo '

    '. "Pridajte názov odkazu". "

    ,; echo ',; echo ',; echo '

    '. "Pridajte odkaz odkazu."

    ,;

    Obnovte stránku úprav po postupe a mali by ste vidieť tieto dva vstupy pridané.

    $ NAME_VALUE a $ link_value premenná načíta položky z databázy a zaplní ich do vstupných polí. Ak chcete získať záznamy do databázy, budeme musieť vytvoriť funkciu.

    Musíme pridať niekoľko riadkov kódu, ktoré zaplnia položky, ktoré boli pridané prostredníctvom týchto vstupov do databázy bezpečne. “bezpečne” tu znamená oprávnený a povolený vstup (nie ten, ktorý pochádza od hackerov alebo iných neautorizovaných pracovníkov). Ak chcete záznam uložiť, budeme musieť vytvoriť novú funkciu. Uveďme názov funkcie: save_post_reference, ako.

     funkcia save_post_reference ($ post_id)  ​​add_action ('save_post', 'save_post_reference'); 

    Ako sme už spomenuli, musíme z bezpečnostných dôvodov overiť niekoľko vecí:

    (1) Budeme musieť skontrolovať, či používateľ má možnosť upraviť príspevok.

     ak (! current_user_can ('edit_post', $ post_id)) návrat;  

    (2) Musíme tiež skontrolujte, či je položka Nonce nastavená.

     ak (! isset ($ _POST ['reference_nonce'])) návrat;  ak (! wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box')) návrat;  

    (3) Potom musíme zabrániť automatickému uloženiu údajov. Ukladanie sa môže vykonať iba raz “Uložiť” alebo “aktualizovať” kliknite na tlačidlo.

     ak (definované ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;  

    (4) Budeme tiež musieť zabezpečiť, aby naše dva vstupy, post_reference_name a post_reference_link, sú nastavené a pripravené pred odoslaním záznamov.

     ak je (! isset ($ _POST ['post_reference_name']) ||! isset ($ _POST ['post_reference_link'])) návrat;  

    (5) Záznam by nemal obsahovať žiadne neočakávané znaky, ktoré by mohli ohroziť bezpečnosť webových stránok. Ak chcete to skontrolovať, môžete použiť vstavanú funkciu WordPress sanitize_text_field.

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

    Dobre, teraz sme pripravení uložiť položky do databázy:

     update_post_meta ($ post_id, '_post_reference_name', $ referenčné meno); update_post_meta ($ post_id, '_post_reference_link', $ odkaz_ odkaz); 

    Teraz si môžete vyskúšať: vložte nejaký obsah do vstupných polí a kliknite na “aktualizovať” , aby ste ich uložili.

    záver

    Práve sme vytvorili meta-box, ktorý sa skladá z dvoch vstupov. Môžete ďalej rozšíriť pole s inými typmi vstupov, ako je tlačidlo prepínača alebo výber. Tento príklad môže byť veľmi základný, ale akonáhle sa dostanete visieť na to, budete môcť použiť tento meta box pre oveľa zložitejšie použitie. Dajte nám vedieť, či to budete používať a na čo budete používať.