Domovská » WordPress » Pochopení WordPress Vlastní Meta Box

    Pochopení WordPress Vlastní Meta Box

    V předchozím příspěvku jsme hovořili o vlastním poli aplikace WordPress, které umožňuje přidat a odeslat nový záznam v příspěvku pomocí pole Vlastní pole, které aplikace WordPress poskytuje na obrazovce úprav úprav. Pokud však nejste spokojeni s použitím vlastního pole pole (my všichni máme své individuální preference), zde je alternativa: můžete vytvořit meta box.

    Meta box je vlastní krabice které vytváříme sami, což může obsahovat vstup nebo jiné interaktivní uživatelské rozhraní pro přidání nových položek příspěvků nebo stránek. Můžete použít pole meta namísto pole Vlastní pole provést totéž. Podívejme se, jak je vytvořit.

    Více na stránkách Hongkiat.com:

    • Přizpůsobit media upload adresář V WordPress
    • Přizpůsobení stylů editoru WordPress
    • Přizpůsobte “Howdy” V aplikaci WordPress admin bar
    • Zaregistrovat vlastní taxonomii pro uživatele aplikace WordPress
    • Ikony displeje V nabídce WordPress

    Vytvoření Meta Boxu

    WordPress poskytují funkci API, volal add_meta_box, který nám umožňuje vytvořit meta box hned. Je to v jeho základní formě.

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

    add_meta_box trvá čtyři parametry: ID, název meta boxu, funkci zpětného volání, která vyvolá 'Hello World' a typ příspěvku, který chceme zobrazit. V tomto případě přidáme novou stránku meta do stránky pro úpravy příspěvků (tato funkce funguje také se stránkami).

    V sekci pro úpravy příspěvků naleznete nové pole následujícím způsobem.

    Nové pole meta, jak můžete vidět výše, se zobrazí pod editorem WYSIWYG. Chcete-li jej přidat do postranního panelu, můžete po parametru příspěvku přidat výraz „side“ a spolu s výrazem „high“, chcete-li jej umístit na horní okraj postranního panelu.

     function add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post', 'side', 'high');  add_action ('add_meta_boxes', 'add_post_reference'); 

    Nyní ho najdete nad Publikovat box…

    Nyní nahraďte text „Ahoj Svět“. Přidejte prvky jako vstupní pole pro nový záznam.

    V tomto příkladu přidáme dvě vstupní pole, která se skládají z jednoho pro přidání referenčního názvu a dalšího pro referenční odkaz:

     function 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 '

    ". 'Přidat název odkazu'. '

    "; echo '"; echo '"; echo '

    ". 'Přidat odkaz na odkaz'. '

    ";

    Obnovte stránku pro úpravy příspěvků a přidejte tyto dva vstupy.

    $ name_value a $ link_value proměnná načte položky z databáze a vyplní je do vstupních polí. Abychom tyto údaje do databáze dostali, budeme pro to muset vytvořit funkci.

    Musíme přidat několik řádků kódu, které budou naplňovat položky přidané těmito vstupy do databáze bezpečně. “Bezpečně” zde se rozumí legitimní a autorizovaný vstup (ne ten, který pochází od hackerů nebo jiných neoprávněných osob). Pro uložení záznamu budeme muset vytvořit novou funkci. Pojmenujme funkci: save_post_reference, jako tak.

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

    Jak jsme zmínili, musíme z bezpečnostních důvodů ověřit několik věcí:

    (1) Budeme muset zkontrolovat, zda uživatel má možnost upravit příspěvek.

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

    (2) Musíme také zkontrolujte, zda je nastaven Nonce.

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

    (3) Pak musíme zabránit automatickému ukládání dat. Uložení lze provést pouze jednou “Uložit” nebo “Aktualizace” klikněte na tlačítko.

     pokud (definováno ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;  

    (4) Budeme také muset zajistit, aby naše dva vstupy, post_reference_name a post_reference_link, jsou nastaveny a připraveny před odesláním příspěvků.

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

    (5) Záznam by měl být bez jakýchkoli neočekávaných znaků, které by mohly ohrozit bezpečnost webových stránek. Chcete-li zkontrolovat, můžete použít vestavěnou funkci WordPress sanitize_text_field.

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

    V pořádku, nyní jsme připraveni uložit záznamy do databáze:

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

    Nyní si to můžete vyzkoušet: vložte nějaký obsah do vstupních polí a klikněte na tlačítko “Aktualizace” pro uložení.

    Závěr

    Právě jsme vytvořili meta box, který se skládá ze dvou vstupů. Dále můžete krabici rozšířit o další typy vstupů, jako je například přepínač nebo políčko. Tento příklad může být velmi základní, ale jakmile se dostanete na to, budete moci použít tuto meta box pro mnohem složitější použití. Dejte nám vědět, pokud budete používat toto a co budete používat pro.