Kuigi selle ümbertöötamise seeria viimane postitus ei olnud väga pikk, arvan, et see oli natuke tihe. See tähendab, et koodi viimine kohta, kus saaksime sellega hõlpsamini töötada, nõudis üsna palju tööd.
Aga see on just see: kogu meie tehtud töö peaks hõlbustama ülejäänud kirjutatava koodiga edasi liikumist.
Ja veendumaks, et kasutame ära seni loodud tööd ja vundamenti, lõpetame sarja lühemate, rohkem keskendunud artiklitega, mille lugemiseks ja rakendamiseks peaks kuluma vähem aega. ja mõista, mida me koodiga teeme.
WordPressi vidina katlaplaat: ümberkujundamine, 9. osa
Meenutage viimast postitust:
Järgmisena jätkame vidina haldusala funktsionaalsuse väljatöötamist. Pärast seda pöörame tähelepanu nii vidina avalikkusele kui ka serialiseerimisfunktsioonile.
Ja see seab meid täpselt sellesse postitusse, kuhu me oleme teel. Nimelt hakkame kirjutama haldusliidese, mis võimaldab meil:
- määrake vidinale pealkiri,
- määrata vidina tekstisisu,
- ja lülitage sisse, kas tahame pealkirja näidata või mitte.
See ei ole mõeldud olema uuenduslik ega ka seda tüüpi vidin, mida keegi teine võib müüa. Selle asemel on see mõeldud näitama, kuidas saame kasutada seda, mis meil on, et luua midagi sarnast, mida oleme WordPressis juba näinud, ja kuidas me kasutame kindlaid programmeerimisvõtteid.
Kasutajaliides: esimene läbimine
Pärast meie eelmist tööd on meil vidin, mis ilmub WordPressi haldusalasse ja selle saab isegi teisaldada külgribale või muule vidinatega alale; tegelikult ei tee see aga midagi.
Nüüd jätkame ja lisame kasutajaliidesele kolm elementi:
- lisage vidina pealkirjaks tekstisisestus,
- sisaldama tekstiala elementi, et kuvada, mis võib olla tekstilõik,
- ja lõpuks lisage pealkirja teabe ümberlülitamiseks märkeruut.
Selleks peame redigeerima kataloogis Views olevat faili. Nimelt hakkame uuendama faili Admin.php. Alustame elementidega täpselt nii, nagu vaja, ilma kõrvalise märgistuseta.
<input type="text" name="widget-title" value="" />
<textarea name="widget-content"></textarea>
<label>
<input
type="checkbox"
value="1"
name="widget-title-enabled"
/>
Display Title?
</label>
Esiotsas pole seda veel palju vaadata, kuid see viib meid lähemale sellele, kuhu tahame jõuda.
Klass administraatoritele
Järgmiseks tahame olla kindlad, et jääme oma klassidega kõrgel tasemel ühtekuuluvuse säilitamiseks järjepidevaks. See tähendab, et me ei vaja üht klassi, et teha kõike halduse, kuvamise ja kõigi muude WordPressi API jaoks vajalike tööde tegemiseks.
Selleks loome WordPressi kataloogis ja nimeruumis teise klassi nimega WidgetAdmin .
Sellesse faili lisame järgmise koodi :
<?php
/*
* This file is part of WordPress Widget Boilerplate
* (c) Tom McFarlin <tom@tommcfarlin.com>
*
* This source file is subject to the GPL license that is bundled
* with this source code in the file LICENSE.
*/
namespace WordPressWidgetBoilerplateWordPress;
/**
* Manages the administrative functionality of the widget.
*/
class WidgetAdmin extends Widget
{
/**
* {@inheritdoc}
*/
public function __construct($widgetSlug)
{
parent::__construct($widgetSlug);
}
/**
* Displays the administrative view of the form and includes the options
* for the instance of the widget as arguments passed into the function.
*
* @param array $instance the options for the instance of this widget.
*/
public function form($instance)
{
include plugin_dir_path(__FILE__).'Views/Admin.php';
}
}
Seejärel muudame vidina algkoodis seda rida :
<?php
/**
* Registers the core Widget class using the WordPress APIs.
*/
public function load()
{
register_widget(new Widget('widget-name'));
}
Et välja näha selline :
<?php
/**
* Registers the core Widget class using the WordPress APIs.
*/
public function load()
{
register_widget(new WidgetAdmin('widget-name'));
}
Mõne järgmise artikli jooksul see areneb edasi, kuid nagu näete, hoolitseme selle eest, et meil oleks WordPressiga rääkimiseks üks põhifunktsioonide klass ja klass, mis on mõeldud spetsiaalselt haldusvormi renderdamiseks.
Kasutajaliides: Teine läbimine
Lõpuks puhastame vormi, et sellel oleks natuke rohkem kindlat kasutajakogemust, mis sulanduks hästi WordPressi haldusalaga tervikuna.
<input type="text" name="widget-title" value="" />
<textarea name="widget-content"></textarea>
<label>
<input
type="checkbox"
value="1"
name="widget-title-enabled"
/>
Display Title?
</label>
Ja värskendage seda nii, et see näeks välja selline :
<div class="widget-content">
<p>
<input
type="text"
name="widget-title"
value=""
placeholder="Widget Title"
class="widefat"
/>
</p>
<p>
<textarea
name="widget-content"
placeholder="Widget Content"
style="width:100%;"></textarea>
</p>
<p>
<input
type="checkbox"
value="1"
name="widget-title-enabled"
class="checkbox"
/>
<label for="widget-title-enabled">Display Title?</label>
</p>
</div><!-- .widget-content -->
Eeldades, et kõik läks hästi, peaksite nüüd nägema midagi sellist:
Ja siin me lõpetame selle postituse haldusfunktsioonidega. Pidage meeles, et saate seda kõike jälgida ka GitHubi arendusharus.
Desinfitseerimine ja serialiseerimine
Järgmises postituses vaatame, mida on vaja meie vidina sisu desinfitseerimiseks ja seeriaviisiliseks muutmiseks (või puhastamiseks ja salvestamiseks).
Samuti tagame, et pärast teabe salvestamist ja toomist kuvatakse teave haldusalas.
Lõpuks arenevad pärand ja klassi ühtekuuluvus edasi, kuid praegu keskenduge selles postituses käsitletule ja jätkame siis järgmises artiklis.
