WordPress wordt normaal gebruikt als een blog engine of als een content management systeem (CMS), maar dat zijn niet de enige dingen waar het voor kan worden gebruikt. Met een beetje fantasie kun je er vrijwel alles mee doen! In deze zelfstudie leer ik je hoe je een verkorte URL-service kunt bouwen, een plug-incode kunt schrijven met behulp van objectgeoriënteerde technieken en kunt omgaan met WordPress-routers en aangepaste foutmeldingen.
Houd er rekening mee dat dit een geavanceerde zelfstudie is - we zullen een aantal relatief geavanceerde PHP-technieken gebruiken, maar ik zal ervoor zorgen dat ik u koppelingen maak naar alle bronartikelen die u mogelijk onderweg moet begrijpen. Vergeet niet dat het het doel van deze tutorial is om de grenzen van WordPress te verleggen, en dat zal echt nadenken!
U moet bekend zijn met het idee van wat een "korte URL" -service tegenwoordig is. Als dit niet het geval is, ga je naar Goo.gl, bit.ly of een van de anderen die er zijn. Dat gaat allemaal goed en wel, maar wat als je de jouwe wilt? Er zijn een paar redenen waarom je dit zou willen (niet alleen voor ijdelheid doeleinden), en dit is een uitstekende kans om te kijken naar enkele van de meer geavanceerde gebieden van WordPress die je misschien niet kent.
Het doel: We zullen een aangepast berichttype maken met de naam "url", de berichttitel wordt gebruikt als de oorspronkelijke URL. Voor elk bericht (eigenlijk elke URL nu) genereren we een sleutel, of de gebruiker voert zijn / haar eigen sleutel in, die we vanaf nu de "ijdelheidssleutel" noemen. Deze ijdelheidssleutel wordt toegevoegd aan de URL van de site en we hebben een korte URL.
Hier is de analyse van wat we in lekentermen doen:
http://wp.tutsplus.net
.http://net.tutsplus.com/tutorials/wordpress/create-a-multi-layout-portfolio-with-wordpress/
. http://wp.tutsplus.net/1A
.http://net.tutsplus.com/tutorials/wordpress/create-a-multi-layout-portfolio-with-wordpress/.
Als u nog niet bekend bent met de ontwikkeling van plug-ins, moet u deze handige zelfstudies bekijken voordat u verder gaat:
Zorg er ook voor dat mod_rewrite is geïnstalleerd en schakel Pretty Permalink in. We gebruiken een aangepast veld met de naam _vanity_key
om deze ijdelheidssleutel op te slaan voor elke post.
Genoeg chatten, laten we beginnen!
We zullen OOP hier gebruiken.
Laten we deze plug-in 'wp-vanity' noemen. We maken een map wp-vanity in wp-content / plugins. Vervolgens maken we een hoofdbestand call vanity.php en plaatsen het in map wp-vanity.
class Vanity static private $ _self = null; const POST_TYPE = 'url'; / ** * Retourneer altijd dezelfde instantie van de plug-in zodat we de eigenschap en de methode * overal kunnen openen * @return Vanity * / static public function singleton () if (! Self :: $ _ self) $ classname = __CLASS__ ; self :: $ _ self = new $ classname; zelf :: $ _ zelf -> _ bootstrap (); return self :: $ _ self; / ** * Construct-plug-in en stel een bruikbare eigenschap in voor latere referentie * / public function __construct () / ** * Init cache-klasse! * Alle stijlen laden, script, JavaScript-var definiëren met nuttige URL * / persoonlijke functie _bootstrap () // Actie toevoegen, filter hier plaatsen $ wp_vanity = Vanity :: singleton ();
We organiseren code in een klasse met de naam "Vanity". We definiëren ook een klassenconstante POST_TYPE
voor de naam van ons berichttype. Vervolgens gebruiken we het singleton () -patroon, zodat u in de toekomst de plug-in groter kunt maken zonder om te gaan met globale variabelen, omdat we altijd dezelfde instantie van de klasse "Vanity" krijgen als we singleton () gebruiken.
Je ziet de methode bootstrap ()
wordt automatisch aangeroepen na het maken van het object in de methode singleton ()
. Dus, alles gerelateerd aan add_action, add_filter zou hier moeten worden geplaatst.
Als u niet bekend bent met Singleton-patroon, lees dan Een beginnershandleiding voor ontwerppatronen.
Ervaren PHP-ontwikkelaars vragen zich misschien af waarom ik die code niet heb ingevoerd __construct ()
methode. Dit is vanwege veiligheidsredenen. Als u te veel code voor lange uitvoering in methode heeft __construct ()
, wat er dan zou kunnen gebeuren als een van die regels de methode aanroept singleton ()
nog een keer. Welnu, op dat moment is het uitvoeren van __construct () nog niet voltooid, dus het object is nog niet geretourneerd; Daarom is Vanity :: $ _ self niet toegewezen. Als resultaatmethode singleton ()
zal een object nog een keer maken. Om veilig te zijn, moeten we geen code gebruiken die de methode oproept singleton ()
in constructiemethode.
We bellen handmatig bootstrap ()
in methode singleton ()
nadat het object is gemaakt. Natuurlijk, als je ervoor zorgt dat er niets fout gaat, kun je het gewoon inleggen _construct ()
meteen.
Voor nu plaatsen we elke code gerelateerd aan add_action, add_filter in methode bootstrap ()
.
In deze stap zullen we ons aangepaste berichttype registreren, een metabox toevoegen om onze ijdelheidssleutel en korte link weer te geven.
We registreren het type bericht waarvan de naam is opgeslagen zelf :: POST_TYPE
. Ik heb geen hardcodering gebruikt, zodat je de naam van het berichttype eenvoudig kunt wijzigen. Ook hebben we alleen WordPress nodig om een titelveld en een auteursveld voor ons berichttype te tonen. We hebben alleen een titelveld nodig om de originele URL in te voeren. Een aangepast veld wordt gebruikt voor de ijdelheidssleutel. Je zult het later wel aan. Laten we nu de methode maken in het()
om het berichttype te registreren:
openbare functie init () $ args = array ('labels' => array ('name' => _x ('Short Urls', 'post type general name'), 'singular_name' => _x ('Short Url', 'post type singular name'), 'add_new' => _x ('URL toevoegen', self :: POST_TYPE), 'add_new_item' => __ ('Nieuwe URL toevoegen'), 'edit_item' => __ ('Bewerk URL '),' new_item '=> __ (' Nieuwe URL '),' all_items '=> __ (' Alle URL's '),' view_item '=> __ (' View Url '),' search_items '=> __ (' Search Urls '),' not_found '=> __ (' Geen url gevonden '),' not_found_in_trash '=> __ (' Geen urls gevonden in de Prullenbak '),' parent_item_colon '=> ",' menu_name '=>' Urls ' ), 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => ' post ',' has_archive '=> true,' hierarchical '=> false,' menu_position '=> null,' supports '=> array (' title ',' author ')); register_post_type (self :: POST_TYPE, $ args );
Er is niet dat ik kan toevoegen aan de bovenstaande code. We registreren met register_post_type
en stel een label en tekst ervoor in. Nu laten we WordPress weten dat we er verbinding mee willen maken met de in het
haak! We gebruiken aangepaste methode _bootstrap ()
:
persoonlijke functie _bootstrap () add_action ('init', array ($ this, 'init'));
Om de ijdelheidssleutel op te slaan, gebruiken we een aangepast veld met de naam _vanity_key
. Bij het bewerken / toevoegen van berichten, tonen we een formulier of met andere woorden aangepaste metabox, met informatie over een korte link (via toevoegen _vanity_key
naar de url van de site), en een tekstvak om de gebruiker zijn eigen ijdelheidssleutel te laten invoeren in plaats van automatisch een sleutel te genereren.
persoonlijke functie _bootstrap () add_action ('init', array ($ this, 'init')); add_action ('add_meta_boxes', array ($ this, 'add_meta_box')); openbare functie add_meta_box () add_meta_box ("vanity-meta", "Short URL", array ($ this, 'meta_box_content'), self :: POST_TYPE, "normal", "low"); openbare functie meta_box_content () global $ post; wp_nonce_field ('my_vanity_nonce', 'vanity_nonce'); $ _vanity_key = get_post_meta ($ post-> ID, '_vanity_key', true);U kunt uw aangepaste url-sleutel hier plaatsen indien gewenst!
"> Probeer het
U kunt get_post_meta gebruiken om de waarde van een aangepast veld van een bericht te krijgen. Als u nog steeds niet bekend bent met de metabox en het aangepaste veld, kunt u deze geweldige zelfstudie opnieuw lezen.
We gebruiken actie
add_meta_boxes
om onze nieuwe metabox te registreren, gebruiken we de methode,meta_box_content ()
, om zijn innerlijke inhoud te geven! Bij het weergeven van de metabox proberen we de waarde van het aangepaste veld te krijgen_vanity_key
. Als we een niet-lege waarde hebben, geven we de hele korte URL weer met die ijdelheidssleutel en een "Probeer het" -link zodat de gebruiker erop kan klikken om een korte URL in een nieuw venster te proberen!Als u op dit moment een nieuwe URL probeert toe te voegen, heeft u het volgende formulier:
Als u een URL bewerkt, heeft u het volgende formulier:
Het aangepaste veld opslaan
Wanneer we het bericht opslaan, slaat WordPress gewoon de titel op van de post, we moeten ons aangepaste veld in de metabox zelf behandelen. Wanneer een bericht is opgeslagen, actie
save_post
wordt gebeld, dus we nemen deel aan deze actie:persoonlijke functie _bootstrap () add_action ('init', array (& $ this, 'init')); add_action ('add_meta_boxes', array ($ this, 'add_meta_box')); add_action ('save_post', array ($ this, 'save_url')); public function save_url ($ post_id) global $ post; if (defined ('DOING_AUTOSAVE') && DOING_AUTOSAVE) retourneren; // als onze nonce er niet is, of we kunnen het niet verifiëren, borg dan als (! isset ($ _ POST ['vanity_nonce']) ||! wp_verify_nonce ($ _ POST ['vanity_nonce'], 'my_vanity_nonce')) terug te keren; // als onze huidige gebruiker dit bericht niet kan bewerken, borg dan als (! current_user_can ('edit_post')) terugkomt; $ _vanity_key = leeg ($ _ POST ['_ vanity_key'])? base_convert ($ post_id, 10, 36): preg_replace ('/ [^ a-z0-9 _] / i', '_', $ _POST ['_ vanity_key']); $ old_key = get_post_meta ($ post_id, '_vanity_key', true); if ($ _vanity_key == $ old_key) // We zijn bezig met het bijwerken van de post en de sleutel is niet gewijzigd, dus het is niet nodig om opnieuw op te slaan; update_post_meta ($ post_id, '_vanity_key', $ _vanity_key);Als we de post automatisch opslaan, heeft het geen zin om ons aangepaste veld op te slaan. We hebben ook gecontroleerd of het formulier geldig is
nonce
veld om dubbel indienen te voorkomen en om ervoor te zorgen dat gegevens van de juiste plaats kwamen.Als de gebruikers een waarde hebben ingevoerd in het inity-veld, dan is de waarde van
$ _POST [ '_ vanity_key']
in PHP is niet leeg, laten we het gebruiken, anders genereren we automatisch een sleutel door de id van post in basis 36-nummer om te zetten. Dan gebruiken weupdate_post_meta
om het op te slaan. Voordat we opslaan, krijgen we de huidige waarde van het aangepaste veld_vanity_key
en vergelijk het met onze nieuwe sleutel die wordt ingevoerd door de gebruiker of wordt gegenereerd door onze code om te zien of we deze echt moeten opslaan. Als de oude waarde en nieuwe waarde hetzelfde zijn, heeft het geen zin om het opnieuw op te slaan.Foutafhandeling
Alles ziet er op dit moment goed uit, maar misschien vraag je je af wat er gebeurt als de gebruiker een ijdelheidssleutel invoert die al eerder is gebruikt? Of wat als de gebruiker een ongeldige URL invoert? We hebben een of andere vorm van foutafhandeling nodig om de gebruikers onderweg te helpen.
Laten we eerst een methode maken genaamd
_key2url
. Zoals de naam zegt, ontvangt hij een sleutel en probeert hij te achterhalen of we al een URL hebben die overeenkomt met deze sleutel./ ** * Vind de originele url reageer op deze sleutel * @global wpdb $ wpdb * @param string $ key * @return bool or string * false indien niet gevonden en originele url correspondeert anders * / private functie _key2url ($ key) globale $ wpdb; $ sql = "SELECT m.post_id, p.post_title als URL FROM $ wpdb-> prefix postmeta als m LEFT JOIN $ wpdb-> prefix posts als p ON m.post_id = p.id WHERE m.meta_key = '_vanity_key' AND m.meta_value = '% s' "; $ result = $ wpdb-> get_row ($ wpdb-> prepare ($ sql, $ key)); if (! $ resultaat) return false; 'http: //'! = substr ($ resultaat-> url, 0, '7') && $ resultaat-> url = 'http: //'. $ Resultaat-> url; return $ result-> url;Als er nog geen ijdelheidssleutel is gebruikt, wordt een valse waarde geretourneerd. Anders wordt de URL die overeenkomt met die sleutel in de database geretourneerd. We voegen ook 'http: //' toe aan URL indien nodig. We moeten dit doen vanwege het missen van het leiden van 'http: //' kan WordPress omleiden naar ourdomain.com/original.com in plaats van http://original.com.
WordPress slaat aangepaste velden op in de tabel "wp_postmeta" en berichten worden opgeslagen in de tabel "wp_posts". Hier is "wp_" een voorvoegsel waartoe we toegang hebben via het prefix $ wpdb->. We gebruiken de MySql JOIN-component om gegevens te matchen. Hieronder vindt u een cijfer over hoe WordPress ons aangepaste veld opslaat (in dit geval onze inity-toets)
Oké, laten we onze methode veranderen
save_url
voor sommige foutafhandeling. Merk op dat ik twee nieuwe methoden heb toegevoegd:ongeldige sleutel
enOngeldige URL
. We zullen dit later bespreken.openbare functie save_url ($ post_id) global $ post; if (defined ('DOING_AUTOSAVE') && DOING_AUTOSAVE) retourneren; // als onze nonce er niet is, of we kunnen het niet verifiëren, borg dan als (! isset ($ _ POST ['vanity_nonce']) ||! wp_verify_nonce ($ _ POST ['vanity_nonce'], 'my_vanity_nonce')) terug te keren; // als onze huidige gebruiker dit bericht niet kan bewerken, borg dan als (! current_user_can ('edit_post')) terugkomt; // Als de URL ongeldig is, voegt u ook een aangepast bericht toe als (! Preg_match ('| ^ http (s)?: // [a-z0-9-] + (. [A-z0-9-] +) * (: [0-9] +)? (/.*)? $ | I ', $ post-> post_title)) add_filter (' redirect_post_location ', array ($ this,' invalid_url ')); $ _vanity_key = leeg ($ _ POST ['_ vanity_key'])? base_convert ($ post_id, 10, 36): preg_replace ('/ [^ a-z0-9 _] / i', '_', $ _POST ['_ vanity_key']); $ old_key = get_post_meta ($ post_id, '_vanity_key', true); if ($ _vanity_key == $ old_key) // We zijn bezig met het bijwerken van de post en de sleutel is niet gewijzigd, dus het is niet nodig om opnieuw op te slaan; // Als onze sleutel al bestaat! Laat regenereren totdat we een nieuwe sleutel krijgen terwijl ($ this -> _ key2url ($ _ vanity_key)) $ _vanity_key = base_convert (time () + rand (1, 10000), 10, 36); add_filter ('redirect_post_location', array ($ this, 'invalid_key')); update_post_meta ($ post_id, '_vanity_key', $ _vanity_key); openbare functie invalid_key ($ location, $ errnum) return $ location. '& Vanity_message = 2; openbare functie invalid_url ($ location, $ errnum) return $ location. '& vanity_message = 1';We gebruiken
preg_match ( '| ^ http (s):?.? // [a-z0-9-] + ([a-z0-9-] +) * (: [0-9] +) (/.*) ? $ | i ', $ post-> post_title)
om te controleren of we een geldige URL hebben. preg_match retourneert het aantal keren dat patroon overeenkomt.In dit geval,
| ^ Http (s): // [a-z0-9-] + * (: [0-9] +)? ([A-z0-9-] +.)? (/.*) $ | ik
is een regulier expressiepatroon voor een URL die begint met http of https. URL is$ Post-> POST_TITLE
(vergeet niet dat we de titel van het bericht gebruiken als originele URL).Als de URL niet geldig is, bellen we add_filter naar een waarschuwingsfout. Maak je geen zorgen over wat het nu betekent, ik zal het later behandelen. Ook, zodra we de nieuwe ijdelheidssleutel hebben gekregen waaraan we hebben toegewezen
$ _vanity_key
, we noemen methode_key2url
in while-lus om ervoor te zorgen dat er geen bericht wordt gebruikt dat ijdelheidssleutel eerder.Als de inity-toets al wordt gebruikt, genereren we een nieuwe sleutel. We krijgen de huidige tijd door de functie te gebruiken
tijd()
wat een resultaat oplevertint
nummer dan plus met een willekeurig getal en zet het totale resultaat om naar een basis 36-nummer .Dus, hoe stellen we de gebruiker hiervan op de hoogte via WordPress back-end? Het mechanisme om dit in WordPress op te lossen ziet er als volgt uit: na het opslaan van een bericht leidt WordPress de gebruiker om naar de pagina voor het bewerken van berichten en voegt enkele parameters toe aan de URL als vlaggen om berichten weer te geven. Probeer deze te bekijken om erachter te komen wat de parameter "bericht" in de URL is en het actuele bericht in het geel.
Als je naar de URL van WordPress kijkt nadat je een bericht hebt opgeslagen, zie je zoiets als dit:
http://house.axcoto.com/vanity/wp-admin/post.php?post=13&action=edit& Message = 1
en een bericht wordt getoond zoals in de afbeelding hieronder:Als u de parameter "message" op de URL probeert te wijzigen, heeft u:
Helaas heeft WordPress geen document voor filter
redirect_post_location
nu, maar je kunt gewoon begrijpen dat deze haak ons een eenvoudige manier geeft om de URL aan te passen waarnaar WordPress zal doorsturen na het opslaan van een bericht.Welnu, u moet nu begrijpen hoe WordPress meldingen aan de gebruiker laat zien via parameters op URL. Dus bij het opslaan van onze post type in methode
save_url
, als er een fout optreedt, zullen we de URL wijzigen waarnaar WordPress zal doorsturen en onze aangepaste parameter toevoegen. WordPress biedt filterredirect_post_location
om dit te doen. Dit is een uittreksel van bovenstaande code, want je ziet het duidelijker://? add_filter ('redirect_post_location', array ($ this, 'invalid_key')); add_filter ('redirect_post_location', array ($ this, 'invalid_url')); //? openbare functie invalid_key ($ location, $ errnum) return $ location. '& Vanity_message = 2; openbare functie invalid_url ($ location, $ errnum) return $ location. '& vanity_message = 1';In elk geval voegen we een aangepaste parameter vanity_message met een waarde toe: 1 betekent een ongeldige URL, 2 betekent dat de sleutel al wordt gebruikt. Next. we moeten onze aangepaste boodschap laten zien met deze vanity_message. Laten we onze methode aanpassen
meta_box_content
:openbare functie meta_box_content () global $ post; wp_nonce_field ('my_vanity_nonce', 'vanity_nonce'); $ _vanity_key = get_post_meta ($ post-> ID, '_vanity_key', true); if (! empty ($ _ GET ['vanity_message'])): switch ((int) $ _GET ['vanity_message']): case 1: echo ''; breken; case 2: echo 'URL is niet geldig
'; breken; eindschakelaar; endif?>Uw aangepaste sleutel bestaat al, dus we hebben een andere sleutel gegenereerd
U kunt uw aangepaste url-sleutel hier plaatsen indien gewenst!
"> Probeer het
We kunnen het foutbericht weergeven in onze metabox. Maar het goede is zolang je de klasse van elk element op de pagina instelt op 'geüpdatet', dan grijpt WordPress het automatisch en verplaatst het naar de juiste plaats op deze manier:
Misschien zeg je "wauw" na het lezen van dit! Maar zoals ik al zei, WordPress is echt slim en doet veel dingen voor je, alleen kunnen ze niet alles documenteren.
Stap 3 Detectie van URL's en omleidingen
Op dit moment kon je een nieuwe URL toevoegen en de URL opslaan. Het is nu tijd om het te proberen verkorten de URL nu!
Wat gebeurt er als een gebruiker een korte URL treft? Wel, WordPress laadt op en verwerkt de URL in de "query" -eigenschap van de klas
wp_query
.Deze klasse heeft een globale instantie:
$ wp_query
. We zullen aansluiten op een van de WordPress-hooks voordat de header wordt afgedrukt om de gebruikers door te sturen naar de oorspronkelijke URL. Als de kop is afgedrukt, hoe komt het dan dat we een omleiding kunnen maken, toch? Om het gemakkelijker te begrijpen te maken, laten we inhaken op actie 'get_header'.persoonlijke functie _bootstrap () add_action ('init', array ($ this, 'init')); add_action ('add_meta_boxes', array ($ this, 'add_meta_box')); add_action ('save_post', array ($ this, 'save_url')); add_action ('get_header', array ($ this, 'check_url')); openbare functie check_url () global $ wp_query; globale $ wpdb; if (! $ wp_query-> is_404) // Dit is een geldige URL van WordPress! return false; $ key = empty ($ wp_query-> query ['paginanaam'])? false: $ wp_query-> query ['paginanaam']; if ($ key && $ url = $ this -> _ key2url ($ key)) wp_redirect ($ url);Dus, als je naar url gaat, zal domain.com/foo WordPress "foo" opslaan als "paginanaam" van
$ Wp_query-> vraag
als het geen permalink kan detecteren (post slug, category name ,?) die overeenkomt met deze URL. Zodra we de sleutel hebben, noemen we de methode_key2url
om de URL van die sleutel te krijgen. Als er een is gevonden, worden we doorgestuurd naar die oorspronkelijke URL. Of we bellen gewoon_key2url
als WordPress-uitvoer geen pagina heeft gevonden! Het heeft geen zin om te bellen_key2url
elke keer omdat het een querydatabase nodig heeft en dit kan een prestatieprobleem zijn als uw site enorm veel verkeer heeft. Eindelijk, je hebt het gedaan! Dat is alles wat u hoeft te doen om een urlservice te verkorten met WordPress.Stap 4 Het nog beter maken
Op dit punt kun je een url toevoegen en een lijst met url-berichten in WordPress dashboard hebben! Maar om de korte url- en ijdelheidssleutel te zien, moet je een bericht bewerken om het te zien? Dat is echt vervelend! Dus laten we deze ijdelheidssleutel op de lijst met berichtvermeldingen plaatsen. We kunnen dit bereiken met filter manage_edit- post_type _columns en action manage_ post_type _custom_column
Met filter kunnen we meer kolommen toevoegen wanneer we ons aangepaste berichttype aanbieden naast normale kolommen zoals: titel, auteur ,? enz. Met Action kunnen we echt inhoud voor die kolom bouwen. Zoals altijd moet u injecteren
add_action
enadd_filter
naar de_bootstrap
methode:persoonlijke functie _bootstrap () add_action ('init', array ($ this, 'init')); add_action ('add_meta_boxes', array ($ this, 'add_meta_box')); add_action ('save_post', array ($ this, 'save_url')); add_action ('get_header', array ($ this, 'check_url')); add_filter ('manage_edit-'. self :: POST_TYPE. '_columns', array ($ this, 'custom_column')); add_action ('manage_'. self :: POST_TYPE. '_posts_custom_column', array ($ this, 'column_content'), 10, 2); / ** * WordPress geeft een reeks kolommen door aan deze functie. * De sleutel van elk element is de naam van de kolom. * @param array van kolommen * / public function custom_column ($ columns) $ columns ['_ vanity_key'] = __ ('Vanity Key', 'wp-vanity'); return $ kolommen; public function column_content ($ column_name, $ post_id) global $ wpdb; switch ($ column_name) case '_vanity_key': $ key = get_post_meta ($ post_id, '_vanity_key', true); if ($ key) echo sprintf ('% s', trailingslashit (get_bloginfo ('url')), $ key, $ key); pauze;Kolommen worden opgeslagen in een array die wordt doorgegeven aan onze filtermethode. We voegen een nieuwe kolom toe door een nieuw element aan die array toe te voegen. Methode "custom_column" zorgt hier voor. De aangepaste array wordt geretourneerd, WordPress pakt de geretourneerde waarde terug en herkent de nieuwe kolom. De naam van de kolom is
_vanity_key
. We gebruiken het om later naar onze kolom te verwijzen. De titel van kolom is "Vanity Key" - dit is de tekst die in de tabelkop verschijnt.We gebruiken methode "column_content" om de inhoud van deze kolom uit te voeren. WordPress geeft twee parameters door aan functies die actie vasthielden
manage_ bericht
: De eerste is de naam van de kolom, de tweede is de id van de post die wordt weergegeven.
typ naam _posts_custom_columnOp basis hiervan controleren we om de waarde van de variabele te controleren
$ column_name
is_vanity_key
, de naam van onze kolom. Dan gebruiken weget_post_meta
om het aangepaste veld te lezen_vanity_key
. Ten slotte drukken we een "a" -element af met target = "_ blank" om het in een nieuw venster te openen. Als u andere kolommen had, kunt u doorgaan met andere 'case'-instructies voor die kolommen.Nu kunt u twee afbeeldingen bekijken: voor en na het gebruik van het bovenstaande filter, actie. De eerste heeft geen ijdelheidskolom, terwijl de tweede een ijdelheidskolom heeft met de ijdelheidssleutel van elke post.
Conclusie
Ten slotte hebt u nu uw eigen verkorte URL-service met slechts ongeveer 60-70 minuten codering en kunt u uw huidige WordPress-site met huidig domein gebruiken. Hopelijk heb je deze tutorial gevonden als hulp. Voel je vrij om deze code elders in je projecten te hergebruiken. Als je iets te zeggen of te delen hebt, of zelfs mij wilt leren, laat me dan alsjeblieft een reactie achter!