{"id":231198,"date":"2022-12-14T13:21:00","date_gmt":"2022-12-14T10:21:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231198"},"modified":"2022-12-14T13:21:25","modified_gmt":"2022-12-14T10:21:25","slug":"aputoiminto-jaerjestelmaenvalvojan-ilmoituksiin","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/aputoiminto-jaerjestelmaenvalvojan-ilmoituksiin\/","title":{"rendered":"Aputoiminto j\u00e4rjestelm\u00e4nvalvojan ilmoituksiin"},"content":{"rendered":"\n<p>Jos aiot rakentaa laajennuksia tai jopa teemoja ja sis\u00e4llyt\u00e4t ty\u00f6h\u00f6si oliopohjaisia \u200b\u200bk\u00e4yt\u00e4nt\u00f6j\u00e4, kohtaat todenn\u00e4k\u00f6isesti jonkinlaisen serialisoinnin. Ja yksi serialisoinnin n\u00e4k\u00f6kohdista, ett\u00e4 se vaatii jonkinlaista palautetta k\u00e4ytt\u00e4j\u00e4lt\u00e4.<\/p>\n<p>T\u00e4m\u00e4 voi olla onnistumisviesti, ep\u00e4onnistumisviesti tai viesti, joka yksinkertaisesti varoittaa k\u00e4ytt\u00e4j\u00e4\u00e4, ett\u00e4 jokin meni pieleen tai jotain pit\u00e4isi ehk\u00e4 p\u00e4ivitt\u00e4\u00e4.<\/p>\n<p>Joka tapauksessa WordPress tarjoaa kaikki tarvitsemamme palvelut; voimme kuitenkin tehd\u00e4 siit\u00e4 entist\u00e4 helpompaa kirjoittamalla aputoiminnon j\u00e4rjestelm\u00e4nvalvojan ilmoituksiin. Se on my\u00f6s yksinkertainen.<\/p>\n<h2>J\u00e4rjestelm\u00e4nvalvojan huomautukset: Aputoiminto<\/h2>\n<p>Kun on kyse j\u00e4rjestelm\u00e4nvalvojan ilmoitusten kirjoittamisesta, on t\u00e4rke\u00e4\u00e4 tuntea <strong><a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/admin_notices\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">oikea koukku.<\/a><\/strong><\/p>\n<p>Sielt\u00e4 sinun on tiedett\u00e4v\u00e4 my\u00f6s seuraavat luokkien nimet:<\/p>\n<ul>\n<li>huomautus-virhe<\/li>\n<li>ilmoitus &#8211; menestys<\/li>\n<li>huomautus-varoitus<\/li>\n<li>ilmoitus-info<\/li>\n<\/ul>\n<p>Sen avulla on mahdollista kirjoittaa aputoiminto, joka k\u00e4ytt\u00e4\u00e4 yll\u00e4 olevaa koukkua ja <strong><a href=\"https:\/\/php.net\/manual\/en\/functions.anonymous.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">anonyymi toiminto<\/a><\/strong> (tai <strong><a href=\"https:\/\/php.net\/manual\/en\/class.closure.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sulku<\/a><\/strong>) saavuttaaksesi juuri tarvitsemasi. Mutta ensin huomioi seuraavat asiat:<\/p>\n<blockquote>\n<p>Anonyymit funktiot, joita kutsutaan my\u00f6s sulkemisiksi, mahdollistavat funktioiden luomisen, joilla ei ole m\u00e4\u00e4ritelty\u00e4 nime\u00e4. Ne ovat hy\u00f6dyllisimpi\u00e4 <a href=\"https:\/\/php.net\/manual\/en\/language.pseudo-types.php#language.types.callback\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">takaisinsoittoparametrien<\/a> arvoina, mutta niill\u00e4 on monia muita k\u00e4ytt\u00f6tarkoituksia.<\/p>\n<\/blockquote>\n<p>T\u00e4m\u00e4n j\u00e4lkeen sinulla pit\u00e4isi olla kaikki mit\u00e4 tarvitset avustajan kirjoittamiseen ja sinulla pit\u00e4isi olla idea tyhjent\u00e4\u00e4 se.<\/p>\n<p>Ensin <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/a7b10e37c4128913e4069f2825a443cd#file-00-display-admin-notice-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aputoiminto:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n\/**\n * Provides an easy eay to display an administration notice based on the incoming\n * class and message.\n *\n * @param string $class   the class to add to the notice (warning, error, success)\n * @param string $message the message to display in the administration notice area\n *\/\nprotected function displayAdminNotice($class, $message)\n{\n    add_action(\n        'admin_notices',\n        function() use ($class, $message) {\n            printf(\n                '&lt;div class=\"%1$s\"&gt;&lt;p&gt;%2$s&lt;\/p&gt;&lt;\/div&gt;',\n                esc_attr($class),\n                esc_html($message)\n            );\n        }\n    );\n}<\/code><\/pre>\n<p>Oletetaan seuraavaksi, ett\u00e4 tehty pyynt\u00f6 sis\u00e4lt\u00e4\u00e4 virheellisi\u00e4 tietoja. Voit k\u00e4sitell\u00e4 t\u00e4m\u00e4n k\u00e4ytt\u00e4m\u00e4ll\u00e4 yll\u00e4 olevaa apuohjelmaa <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/a7b10e37c4128913e4069f2825a443cd#file-01-admin-notice-error-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seuraavasti:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\nif (!$this-&gt;hasValidInput()) {\n    $this-&gt;displayAdminNotice(\n        'notice notice-error',\n        'You must specify a valid email address and license key.'\n    );\n}<\/code><\/pre>\n<p>K\u00e4\u00e4nt\u00f6puolella sanotaan, ett\u00e4 <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/a7b10e37c4128913e4069f2825a443cd#file-02-admin-notice-success-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kaikki toimii hyvin:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\nif (update_option('acme-option', $values)) {\n    $this-&gt;displayAdminNotice(\n      'notice notice-success',\n      'The options were updated successfully!'\n  );\n}<\/code><\/pre>\n<p>Kuten n\u00e4et, t\u00e4m\u00e4 toiminto k\u00e4ytt\u00e4\u00e4 alkuper\u00e4isi\u00e4 WordPress-koukkuja, PHP:n ominaisuuksia ja luo my\u00f6s menetelm\u00e4n, joka voidaan <strong><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/kirjoitusyksikkoetestit-phpunitilla-osa-1-asennus\/\" title=\"testata yksikk\u00f6testauksella,\">testata yksikk\u00f6testauksella,<\/a><\/strong> mill\u00e4 on merkityst\u00e4, jos haluat kirjoittaa testattavia <strong><a href=\"https:\/\/tommcfarlin.com\/web-application-foundation\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">verkkosovelluksia WordPressiin.<\/a><\/strong><\/p>\n<p>Ja vaikka ei, sinulla on helpompi tapa pit\u00e4\u00e4 koodisi v\u00e4h\u00e4n <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Don%27t_repeat_yourself\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kuivampana<\/a><\/strong> kuin ennen.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress tarjoaa kaikki tarvitsemamme palvelut; voimme kuitenkin tehd\u00e4 siit\u00e4 helpompaa kirjoittamalla aputoiminnon j\u00e4rjestelm\u00e4nvalvojan ilmoituksiin. Se on my\u00f6s yksinkertainen.<\/p>\n","protected":false},"author":1,"featured_media":236170,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,864],"tags":[1166],"class_list":["post-231198","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=231198"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231198\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/236170"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=231198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=231198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=231198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}