Tento článek je součástí série návodů zabývající se kompletní tvorbou WordPress widgetu.
- Co byste měli vědět než se pustíte do tvorby prvního widgetu
- Tvorba a registrace WordPress widgetu
- Tvorba samotného widgetu
- Tvorba formuláře pro váš WordPress widget
- Zobrazení widgetu na stránce
V této části se budeme zabývat tvorbou formuláře pro widget a ujištění se, že WordPress změněné nastavení uloží.
To znamená, že do třídy widgetu Tutsplus_List_Pages_Widget přidáme funkci theform a update.
Tvorba formuláře
K tomu, abyste mohli vytvořit formulář pro váš widget, budete muset rozšířit funkci form, která je již vytvořená ve třídě Tutsplus_List_Pages_Widget.
Otevřete si soubor pluginu a upravte funkci, aby vypadala takto:
function
form(
$instance
) {
$defaults
=
array
(
'depth'
=>
'-1'
);
$depth
=
$instance
[
'depth'
];
// označení formuláře ?>
<p>
<label
for
=
"<?php echo $this->get_field_id( 'depth' ); ?>"
>Hloubka seznamu:</label>
<input
class
=
"widefat"
type=
"text"
id=
"<?php echo $this->get_field_id( 'depth' ); ?>"
name=
"<?php echo $this->get_field_name( 'depth' ); ?>"
value=
"<?php echo esc_attr( $depth ); ?>"
>
</p>
<?php
}
Tímto kódem přidáte do formuláře vstupní pole ($depth), které bude použito k určení hloubky hierarchie. Výchozí natavení je -1, které znamená, že bude zobrazena kompletní hierarchie.
Uložte a aktualizujte plugin.
Nicméně ať teď napíšete co chcete, nic se neuloží.
Uložení formuláře
K tomu, aby mohlo dojít k uložení formuláře, musíte upravit funkci update.
function
update(
$new_instance
,
$old_instance
) {
$instance
=
$old_instance
;
$instance
[
'depth'
] =
strip_tags
(
$new_instance
[
'depth'
] );
return
$instance
;
}
Touto úpravou uděláte to, že dojde k nahrazení staré hodnoty hloubky seznamu ($old_instance
) novou ($new_instance). Od této chvíle se bude formulář ukládat.
Zdroj: Building the Form for Your WordPress Widget – Tuts+ Code Tutorial