Startpagina » WordPress » Wat is WordPress Custom Meta Box?

    Wat is WordPress Custom Meta Box?

    In het vorige bericht hebben we gesproken over het aangepaste WordPress-veld, waarmee u een nieuw item in een bericht kunt toevoegen en uitvoeren met behulp van het veld Aangepast veld dat WordPress biedt in het berichtbewerkingsscherm. Als je je echter niet comfortabel voelt met het aangepaste veldvak (we hebben allemaal onze individuele voorkeuren), dan is hier een alternatief: je kunt een metabox maken.

    Een metabox is een aangepaste doos die we alleen creëren, wat mogelijk is bevatten invoer of andere interactieve UI om nieuwe items toe te voegen van berichten of pagina's. U kunt de metabox gebruiken in plaats van het veld Aangepast veld om hetzelfde te doen. Laten we kijken hoe we er een kunnen maken.

    Meer over Hongkiat.com:

    • Aanpassen media upload map In WordPress
    • Pas WordPress-editorstijlen aan
    • Aanpassen “Howdy” In de WordPress-beheerbalk
    • Registreer aangepaste taxonomie voor WordPress-gebruikers
    • Pictogrammen weergeven in WordPress-menu

    Een metabox maken

    WordPress biedt een API-functie, genaamd add_meta_box, waarmee we meteen een metabox kunnen maken. Dit is het in zijn meest basale vorm.

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

    De add_meta_box neemt vier parameters in beslag: de ID, de meta box-titel, een callback-functie die 'Hello World' zal oproepen, en het berichttype dat we willen weergeven. In dit geval wijzen we een nieuwe metabox toe aan een postbewerkingspagina (dit werkt ook met pagina's).

    In het gedeelte voor het bewerken van berichten vindt u een nieuw vak, als volgt.

    De nieuwe metabox verschijnt, zoals je hierboven kunt zien, onder de WYSIWYG-editor. Als je het in de zijbalk wilt toevoegen, kun je 'side' toevoegen na de postparameter en samen met 'high' als je het helemaal bovenaan de zijbalk wilt zetten.

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

    Je zult het nu boven de Publiceren doos…

    Nu om de tekst 'Hallo wereld' daar te vervangen. Laten we elementen toevoegen zoals een invoerveld voor een nieuw item.

    In dit voorbeeld voegen we twee invoervelden toe die bestaan ​​uit één voor het toevoegen van de referentienaam en een andere voor referentielink:

     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 '

    '. 'Voeg de naam van de referentie toe'. '

    '; echo ''; echo ''; echo '

    '. 'Voeg de link van de referentie toe'. '

    ';

    Vernieuw de pagina voor het bewerken van berichten en u zou deze twee ingangen moeten zien toegevoegd.

    De $ NAME_VALUE en $ link_value variabele haalt de vermeldingen uit de database op en vult ze in de invoervelden. Om de gegevens in de database te krijgen, moeten we hiervoor een functie maken.

    We moeten een aantal coderegels toevoegen die de ingangen die via deze invoer zijn toegevoegd, veilig in de database vullen. “Veilig” hier betekent een legitieme en geautoriseerde vermelding (niet die van hackers of ander onbevoegd personeel). Om het item op te slaan, moeten we een nieuwe functie maken. Laten we de functie een naam geven: save_post_reference, zoals zo.

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

    Zoals we hebben vermeld, moeten we een aantal dingen verifiëren voor beveiligingsdoeleinden:

    (1) We zullen moeten controleren of de gebruiker heeft de mogelijkheid om een ​​bericht te bewerken.

     if (! current_user_can ('edit_post', $ post_id)) ga terug;  

    (2) We moeten ook controleer of de nonce is ingesteld.

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

    (3) Vervolgens moeten we voorkomen dat de gegevens automatisch worden opgeslagen. Opslaan kan alleen worden gedaan zodra de “Opslaan” of “Bijwerken” knop is geklikt.

     if (gedefinieerd ('DOING_AUTOSAVE') && DOING_AUTOSAVE) retour;  

    (4) We zullen ook moeten zorgen voor onze twee inputs, post_reference_name en post_reference_link, zijn ingesteld en klaar voordat we de inzendingen verzenden.

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

    (5) En de vermelding moet vrij zijn van onverwachte tekens die de veiligheid van de website in gevaar kunnen brengen. Om dit te controleren, kunt u de ingebouwde functie van WordPress gebruiken sanitize_text_field.

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

    Oke, nu zijn we klaar om de gegevens in de database op te slaan:

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

    Nu kunt u het uitproberen: voer wat inhoud in de invoervelden in en klik op “Bijwerken” knop om ze op te slaan.

    Conclusie

    We hebben zojuist een metabox gemaakt die uit twee ingangen bestaat. U kunt de box verder uitbreiden met andere soorten invoer, zoals het keuzerondje of het selectievak. Dit voorbeeld is misschien heel eenvoudig, maar als je het eenmaal onder de knie hebt, kun je deze metabox gebruiken voor veel gecompliceerder gebruik. Laat ons weten of je dit gaat gebruiken en waar je het voor gaat gebruiken.