15 nuttige WordPress-functies die alle ontwikkelaars moeten weten
WordPress zit vol met geweldige functies voor ons ontwikkelaars om te gebruiken. We kunnen postlijsten zomaar uit de lucht halen, bijna alles over hen manipuleren, elke gewenste gebruiker pakken en hun sociale media-connecties in een oogwenk weergeven.
Er zijn echter nogal wat functies die om onbekende redenen lijken over het hoofd te zijn gezien. Ik codeer nu al 8 jaar met WordPress en zo nu en dan vind ik nog steeds iets nieuws! Laten we een paar van mijn bekijken favoriete over het hoofd gezien functies en leer hoe je ze onderweg kunt gebruiken.
antispambot ()
Ik til hier meestal een paar wenkbrauwen mee op, het lijkt een van de best verborgen functies in de codebase te zijn.
vervangt tekens door HTML-entiteiten, een manier om dit te doen maskeer e-mailadressen van kwaadaardige krabbers.antispambot ()
$ email = '[email protected]'; echo 'U kunt contact met mij opnemen via'. antispambot ($ e-mail). 'altijd'.
Hoewel dit een handige tidbit is, is het ook een voorbeeld van waarom sommige mensen WordPress bekritiseren - dit is een vreselijk benoemde functie. Van het lezen van de functienaam, heb je geen idee wat het doet.
human_time_diff ()
Toen ik ongeveer een jaar geleden voor het eerst over deze functie hoorde, dacht ik dat het een recente toevoeging was die ik over het hoofd zag in een changelog. Niet helemaal…
Deze functie - die het verschil tussen twee tijdstempels uitvoert - is sinds versie 1.5 (dat is 17 februari 2018!).
Het volgende geweldige fragment dat ik heb geleend van de codex laat zien hoe lang geleden een huidig bericht werd gepubliceerd. Het gebruikt de publiceer de datum van het bericht als eerste argument en de huidige datum als de tweede.
echo 'Dit bericht is gepubliceerd'. human_time_diff (get_the_time ('U'), current_time ('timestamp')). 'geleden';
get_post_meta ()
Houd hier, ik weet dat dit een veelgebruikte functie is, maar hoe het werkt, is niet zo algemeen bekend. Allereerst door de tweede en derde parameter weg te laten trek alle metadata voor een bericht.
$ all_meta = get_post_meta (14);
Zelfs als je alleen de gegevens voor een enkele sleutel pakt, wordt toch al de post-meta getrokken.
De reden is eigenlijk best logisch. Metagegevens worden op meerdere plaatsen gebruikt. Als
bevraagt de database elke keer dat het werd gebruikt, we zouden eindigen met veel te veel vragen. Als u in plaats daarvan metagegevens ophaalt, wordt dit allemaal in de cache opgeslagen en worden de waarden in de cache gebruikt voor alle volgende ophalen van metagegevens.get_post_meta ()
wp_upload_bits ()
Deze functie is een straight-up bestand uploaden functie. Hoewel het bestand niet naar de map met uploads wordt verplaatst en het wordt toegevoegd aan het WordPress-mediagedeelte, is het uiterst handig en kunt u altijd de rest doen met de
functie.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'], null, file_get_contents ($ file ['tmp_name']));
Hier is een verklaring voor beschikbaar: de eerste parameter is de bestandsnaam. De tweede wordt afgeschreven zodat deze moet worden ingesteld op nul (eyeroll op consistentie van WordPress). De derde parameter is de daadwerkelijke inhoud van het bestand.
get_post_field ()
In het verleden zag ik nogal wat voorbeelden waarin iemand een lus schreef om een aantal reacties te krijgen voor een bericht, of schreef er een speciale databasequery voor. Je hebt ze niet nodig, wat je nodig hebt is
. Deze functie haalt de waarde van een enkel veld voor een enkele post op in de database. Laten we een opmerking tellen!get_post_field ()
Dit bericht heeft opmerkingen.
wpautop ()
Deze functie is een beetje in de schijnwerpers gekomen, maar is nog relatief onbekend. Het is vergelijkbaar met de native PHP nl2br
maar in plaats van nieuwe lijnen te maken wraps uw inhoud in paragrafen.
Dit is handig als u een tekstvak hebt en u ervoor wilt zorgen dat gebruikers die alinea's met dubbele regeleinden maken, ook zichtbaar blijven in de front-end.
Wat onze gebruikers zeggen
wp_is_mobile ()
Deze toepasselijk benoemde functie detecteert wanneer een gebruiker zich op een mobiel apparaat bevindt en stelt u in staat om inhoud dienovereenkomstig weer te geven. Omdat dit een voorwaardelijke tag is, retourneert deze true of false, afhankelijk van het scenario.
Bezoek onze website op je desktop voor een rijkere gebruikerservaring
wp_redirect ()
Het laatste voorbeeld toont nog een leuke functie:
. Dit moet worden gebruikt in plaats van de PHP-native wp_redirect ()
header ()
functie. Met de omleidingsfunctie WordPress kunt u dit doen stel een URL in waarnaar moet worden omgeleid en stel ook een statuscode in, Zeer geschikt voor het verwerken van permanente omleidingen.
// Voor een URL die niet langer in gebruik is wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Ik wed dat deze functie deels te danken is aan de populariteit van de plug-in WP-PageNavi. Standaard WordPress geeft vorige / volgende links weer aan het einde van uw lijst met berichten. WP-PageNavi vervangt dat met paginanummers.
Dit kan eigenlijk worden gedaan met een beetje werk met behulp van de
functies. Het heeft nogal wat parameters, dus ik raad aan om een kijkje te nemen in de documentatie.paginate_links ()
Het volgende voorbeeld uit de codex laat zien hoe je het aan een standaardlus kunt toevoegen, maar toevoegen aan aangepaste loops is niet echt een stretch.
globale $ wp_query; $ big = 999999999; // heeft een onwaarschijnlijk integer echo paginate_links nodig (array ('base' => str_replace ($ big, '% #%', esc_url (get_pagenum_link ($ big))), 'format' => '? paged =% #%' , 'current' => max (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));
wp_die ()
Deze functie is een aanvulling op de PHP dood gaan()
functie. Het verschil is dat deze functie een WordPress-stijl HTML zal weergeven in plaats van alleen een platte tekst. U kunt deze functie gebruiken om PHP-uitvoering te stoppen. U kunt het bericht, de titel en de aanvullende argumenten die moeten worden weergegeven toevoegen, bijvoorbeeld:
wp_die ("Oeps, je hebt geen toegang tot de", "Permission Denied");
has_block ()
In versie 5.0 introduceerde WordPress een op blokken gebaseerde editor met de codenaam Gutenberg. Deze functie zal identificeren of de inhoud een Gutenberg bevat, ongeveer hetzelfde met de has_shortcode ()
functie. Het zal terugkeren waar
als de inhoud een blok bevat, of vals
als het niet doet.
wp_set_script_translations ()
Omdat veel deel van de gebruikersinterface van WordPress naar JavaScript gaat, heeft het een handige manier nodig om vertaalbare teksten in het JavaScript te registreren die WordPress kan ontleden en begrijpen. Gebruik deze functie om vertaalde tekenreeksen in te stellen voor uw scripts. Hieronder is een voorbeeld:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Een andere prominente functie in WordPress 5.0. Met deze functie kunt u een nieuw blok registreren in de nieuwe WordPress-editor. Uw blok zal verschijnen in de nieuwe editor en het invoegen .
register_block_type ('my-plugin / new-block', array ('title' => 'Nieuw blok', 'icon' => 'megaphone', 'category' => 'widgets', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Met deze functie kunt u via PHP een aanroep doen naar WordPress REST API-eindpunten. Best handig wanneer u een uitvoer uit de REST-API moet ophalen die u verder wilt verwerken binnen de PHP-kant in plaats van in de browser (front-end) kant.
$ request = new WP_REST_Request ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request ($ request); $ data = 200 === $ antwoord-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
Bij het bouwen van een JavaScript-zware gebruikersinterface in WordPress is meestal een set initiële gegevens nodig die op de pagina is voorgeprogrammeerd. Dit is de functie waarmee u dit kunt doen. Deze functie is bedoeld om te worden gebruikt in combinatie met de array_reduce
, bijvoorbeeld.
// Preload gemeenschappelijke gegevens. $ preload_paths = array ('/', '/ wp / v2 / types? context = bewerken', '/ wp / v2 / taxonomieën? per_page = -1 & context = bewerken', '/ wp / v2 / themes? status = active' ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', array ()); wp_add_inline_script ('wp-api-fetch', sprintf ('wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s));', wp_json_encode ($ preload_data)), 'after');
Conclusie
Dit zijn slechts enkele functies die minder bekend lijken te zijn dan de rest. Ik ontdek elke twee maanden een nieuwe geweldige functie en ik ben er zeker van dat mijn ontwikkelaarsvrienden ons nog verder kunnen verrassen.
Als je een favoriete obscure functie hebt of een functie die handig zou zijn maar niet beschikbaar is, laat het ons dan weten in de comments!