{"id":233855,"date":"2023-02-23T09:59:00","date_gmt":"2023-02-23T06:59:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233855"},"modified":"2022-11-11T12:49:47","modified_gmt":"2022-11-11T09:49:47","slug":"wordpress-teeman-opetusohjelma-aloittelijoille-osa-9-valikot-ja-widget-alueet","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-teeman-opetusohjelma-aloittelijoille-osa-9-valikot-ja-widget-alueet\/","title":{"rendered":"WordPress-teeman opetusohjelma aloittelijoille \u2013 Osa 9: Valikot ja widget-alueet"},"content":{"rendered":"\n<p>T\u00e4m\u00e4 oppitunti kattaa kuinka lis\u00e4t\u00e4 kaksi WordPressin ydinominaisuutta teemaamme; valikot ja widget-alueet. Opimme rekister\u00f6im\u00e4\u00e4n sijainnin sivuston p\u00e4\u00e4navigointivalikossa ja n\u00e4ytt\u00e4m\u00e4\u00e4n valikon malleissamme sek\u00e4 sallimaan widgetien lis\u00e4\u00e4misen sivupalkkiin ja alatunnistealueeseen.<\/p>\n<p>Innokkaat ovat saattaneet huomata, ett\u00e4 &quot;Valikot&quot; tai &quot;Widgetit&quot; eiv\u00e4t ole k\u00e4ytett\u00e4viss\u00e4 hallintapaneelin &quot;Ulkoasu&quot;-valikosta. T\u00e4m\u00e4 johtuu siit\u00e4, ett\u00e4 teemamme ei viel\u00e4 tue niit\u00e4. Korjaamme t\u00e4m\u00e4n t\u00e4ll\u00e4 oppitunnilla \u2013 alkaen valikoista. .<\/p>\n<h2>WordPress valikot<\/h2>\n<p>Valikoiden lis\u00e4\u00e4misess\u00e4 teemaasi on kaksi osaa. Ensin sinun on m\u00e4\u00e4ritett\u00e4v\u00e4 yksi tai useampi valikon sijainti <code>functions.php<\/code>. Esimerkki on p\u00e4\u00e4valikko, joka on kaikkien sivujen otsikoissa. Toinen osa on koodin lis\u00e4\u00e4minen siihen paikkaan, jonka haluat valikon tuottavan. Esimerkiksi <code>header.php<\/code>paikkaan, johon haluat sijoittaa p\u00e4\u00e4valikon.<\/p>\n<h3>Valikkopaikan rekister\u00f6inti<\/h3>\n<p>T\u00e4ss\u00e4 opetusohjelmassa lis\u00e4\u00e4mme yhden valikkopaikan sivuston p\u00e4\u00e4navigointia varten ja asetamme sen tulosteen <code>header.php<\/code>. Aloitetaan sijainnin rekister\u00f6innist\u00e4 paikassa <code>functions.php<\/code>, joka tehd\u00e4\u00e4n funktiolla <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_nav_menu<\/a> :<\/p>\n<pre><code>add_action('init', 'wptutorial_register_menu');\nfunction wptutorial_register_menu() {\n    register_nav_menu('main-nav', __('Main Navigation', 'wptutorial'));\n}<\/code><\/pre>\n<p>Meid\u00e4n on tartuttava koukkuun <code>init<\/code>, jonka WordPress on p\u00e4\u00e4tt\u00e4nyt olevan hyv\u00e4 &quot;tarkistuspiste&quot; valikon sijaintien rekister\u00f6innille. Kutsumme <code>register_nav_menu()<\/code>funktiomme sis\u00e4ll\u00e4, joka hyv\u00e4ksyy v\u00e4hint\u00e4\u00e4n kaksi parametria; valikkokahva, joka on ainutlaatuinen etana, jota k\u00e4yt\u00e4t tunnisteena valikon hahmontamisessa, ja valikon n\u00e4kyv\u00e4 nimi, joka n\u00e4kyy hallintapaneelissa. Huomaa, ett\u00e4 k\u00e4\u00e4nn\u00e4n nimen sis\u00e4\u00e4n <code>__()<\/code>, jotta se olisi k\u00e4\u00e4nnett\u00e4v\u00e4, kuten opimme <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-8-translation-of-your-theme\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">edellisess\u00e4 vaiheessa<\/a>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0df88967.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0df88967.png\" alt=\"WordPress-teeman opetusohjelma aloittelijoille \u2013 Osa 9: Valikot ja widget-alueet\" ><\/a><\/p>\n<p>Jos p\u00e4ivit\u00e4t hallintapaneelin, sinun pit\u00e4isi nyt n\u00e4hd\u00e4 uusi alivalikko kohta &quot;Ulkoasu&quot;; &quot;Menut&quot;. Onnittelut, teemasi tukee nyt valikoiden luomista!<\/p>\n<p>Jos et ole perehtynyt valikkojen tekemiseen ja hallintaan WordPressiss\u00e4, <a href=\"https:\/\/wordpress.org\/support\/article\/appearance-menus-screen\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4m\u00e4 on hyv\u00e4 opas<\/a> sinulle.<\/p>\n<p>Luo uusi valikko &quot;Ulkoasu &gt; Valikot&quot; &#8211; se voi sis\u00e4lt\u00e4\u00e4 mit\u00e4 haluat, lis\u00e4sin juuri WordPressiss\u00e4ni luomani valeviestit.<\/p>\n<p>Kun olet tallentanut ensimm\u00e4isen valikon, valikon muokkausalueen alle ilmestyy uusi osio &quot;Valikkoasetukset&quot;, jonka avulla voit valita sijainnin t\u00e4lle valikolle. Sen pit\u00e4isi luetella yksi k\u00e4ytett\u00e4viss\u00e4 oleva sijainti, joka on se, jonka loimme; &quot;P\u00e4\u00e4navigointi&quot;.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e03b2f8.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e03b2f8.png\" alt=\"WordPress-teeman opetusohjelma aloittelijoille \u2013 Osa 9: Valikot ja widget-alueet\" ><\/a><\/p>\n<p>Valitse &quot;P\u00e4\u00e4navigointi&quot; ja napsauta Tallenna. Nyt juuri luomasi valikko on yhdistetty sijaintiin ja n\u00e4ytet\u00e4\u00e4n automaattisesti aina, kun lis\u00e4\u00e4t koodin t\u00e4m\u00e4n valikon sijainnin tulostamiseksi. Tehd\u00e4\u00e4n se nyt.<\/p>\n<h3>Valikon sijainnin n\u00e4ytt\u00e4minen mallissa<\/h3>\n<p>Avaa <code>header.php<\/code>ja lis\u00e4\u00e4 puhelu numeroon <code>wp_nav_menu()<\/code>. T\u00e4m\u00e4 toiminto hyv\u00e4ksyy joukon argumentteja taulukossa mukauttaakseen valikon tulostetta. Mik\u00e4 t\u00e4rkeint\u00e4, tarvitsemme parametrin, joka k\u00e4skee sen hakemaan &quot;P\u00e4\u00e4navigointi&quot; -sijainnin. T\u00e4t\u00e4 varten lis\u00e4\u00e4mme argumentin &#8217; <code>theme_location<\/code>&#8217; ja asetamme sen valikon kahvaan; &#8217; <code>main-nav<\/code>&#8217;.<\/p>\n<p>Lis\u00e4sin valikkotulosteen heti <code>&lt;body&gt;<\/code>tunnisteen alun j\u00e4lkeen, mutta jos olet t\u00e4ydent\u00e4nyt mallejasi HTML:ll\u00e4, p\u00e4\u00e4t\u00e4 itse, miss\u00e4 haluat valikon n\u00e4kyv\u00e4n.<\/p>\n<pre><code>...\n&lt;body &lt;?php body_class(); ?&gt;&gt;\n    &lt;nav class=\"main-nav\"&gt;&lt;?php wp_nav_menu(['theme_location' =&gt; 'main-nav']); ?&gt;&lt;\/nav&gt;<\/code><\/pre>\n<p>P\u00e4ivit\u00e4 k\u00e4ytt\u00f6liittym\u00e4 ja sinun pit\u00e4isi n\u00e4hd\u00e4 j\u00e4rjestelm\u00e4nvalvojassa luomasi valikko j\u00e4rjest\u00e4m\u00e4tt\u00f6m\u00e4n\u00e4 luettelona mallin alussa.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e11c102.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e11c102.png\" alt=\"WordPress-teeman opetusohjelma aloittelijoille \u2013 Osa 9: Valikot ja widget-alueet\" ><\/a><\/p>\n<p>Kuten tavallista, kehotan sinua kaivaa hieman syvemm\u00e4lle parametreihin <code>wp_nav_menu<\/code>WordPress <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Codex -dokumentaatiossa<\/a> ja leikki\u00e4, millaisen tulosteen haluat olevan. Esimerkiksi: voit asettaa sen poistumaan HTML-luettelosta, voit rajoittaa valikon kohdat vain tietyille tasoille (alivalikon est\u00e4miseksi) ja paljon muuta.<\/p>\n<p>Jos olet utelias muotoiluosasta; katso luokkia, jotka WordPress lis\u00e4\u00e4 automaattisesti jokaiseen valikon kohtaan. Voit helposti lis\u00e4t\u00e4 tyylej\u00e4 aktiiviselle valikkokohdalle, kohteille, joissa on alatason kohteita, aktiivisen alakohteen yl\u00e4kohdetta jne.<\/p>\n<p>Huomautus: Kuka tahansa teeman k\u00e4ytt\u00e4j\u00e4 voi aina luoda useita valikkoja ja n\u00e4ytt\u00e4\u00e4 ne teeman rekister\u00f6ityjen sijaintien ulkopuolella widgetien avulla. Kuitenkin tehd\u00e4ksesi t\u00e4m\u00e4n, teemasi on m\u00e4\u00e4ritelt\u00e4v\u00e4 joitain widget-alueita! Tehd\u00e4\u00e4n se seuraavaksi.<\/p>\n<h2>Widget-alueet<\/h2>\n<p>Widget-alueet toimivat melko samalla tavalla valikoiden toiminnassa. Rekister\u00f6it sijainnin (widgeteille m\u00e4\u00e4rit\u00e4t alueen, johon teemak\u00e4ytt\u00e4j\u00e4 voi sijoittaa widgetej\u00e4), ja minne tahansa haluat sijainnin\/alueen n\u00e4kyv\u00e4n malleissasi, lis\u00e4\u00e4t koodin, joka viittaa kahvan tunnukseen, jonka annoit rekister\u00f6intikoodi.<\/p>\n<p>M\u00e4\u00e4ritet\u00e4\u00e4n widget-alue sivupalkkiimme ja yksi alatunnisteeseen. On tavallista, ett\u00e4 teemat tarjoavat useita widget-alueita alatunnisteeseen, jotta ne jaetaan kauniisti sarakkeiksi, mutta t\u00e4ss\u00e4 opetusohjelmassa lis\u00e4\u00e4mme vain yhden alatunnisteeseen.<\/p>\n<p>Widget-alueita kutsutaan WordPress-koodissa &quot;sivupalkeiksi&quot;, mutta se ei koske yksinomaan verkkosivustojen vanhaa oikeaa sivupalkkia. N\u00e4ytt\u00e4\u00e4 silt\u00e4, \u200b\u200b\u200b\u200bett\u00e4 jokin vanha nimi on vain j\u00e4\u00e4nyt kiinni ajalta, jolloin verkkosivustoilla oli yleens\u00e4 vain widget-alue sivupalkissa. \u00c4l\u00e4 ajattele, ett\u00e4 &quot;sivupalkit&quot; voivat viitata vain todellisiin sivupalkkeihin.<\/p>\n<h3>Rekister\u00f6i widget-alueet<\/h3>\n<p>Aloitamme rekister\u00f6im\u00e4ll\u00e4 kaksi widget-aluetta <code>functions.php<\/code>. K\u00e4yt\u00e4mme t\u00e4t\u00e4 <code>register_sidebar<\/code>toimintoa sivupalkkien rekister\u00f6imiseen koukkuun kiinnitettyin\u00e4 <code>widgets_init<\/code>, jotka WordPress on m\u00e4\u00e4ritellyt parhaaksi koukuksi widget-alueiden (ja mukautettujen widgetien) rekister\u00f6imiseen.<\/p>\n<pre><code>add_action('widgets_init', 'wptutorial_register_sidebar');\nfunction wptutorial_register_sidebar() {\n    register_sidebar([\n        'name' =&gt; __('Sidebar Widget Area', 'wptutorial'),\n        'id' =&gt; 'sidebar-area'\n    ]);\n    register_sidebar([\n        'name' =&gt; __('Footer Widget Area', 'wptutorial'),\n        'id' =&gt; 'footer-area'\n    ]);\n}<\/code><\/pre>\n<p>Funktio <code>register_sidebar()<\/code>hyv\u00e4ksyy melko v\u00e4h\u00e4n argumentteja, v\u00e4hint\u00e4\u00e4n tarvitset argumentin &#8217;id&#8217; ja &#8217;name&#8217;. K\u00e4ytett\u00e4viss\u00e4 on parametreja, joilla voit m\u00e4\u00e4ritt\u00e4\u00e4, kuinka haluat widget-HTML-k\u00e4\u00e4reiden tulosteen.<\/p>\n<p>P\u00e4ivit\u00e4 hallintapaneeli, ja sinun pit\u00e4isi nyt n\u00e4hd\u00e4 valikkokohdan &quot;Widgetit&quot; n\u00e4kyv\u00e4n &quot;Ulkoasu&quot; -kohdassa. &quot;Widgetit&quot;-hallintapaneelissa n\u00e4et kaksi k\u00e4ytett\u00e4viss\u00e4 olevaa widget-aluetta oikealla alueella; joka on &quot;sivupalkin widget-alue&quot; ja &quot;alatunniste-widget-alue&quot;.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e22862e.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e22862e.png\" alt=\"WordPress-teeman opetusohjelma aloittelijoille \u2013 Osa 9: Valikot ja widget-alueet\" ><\/a><\/p>\n<p>Aseta satunnainen widget sivupalkki- tai alatunniste-widget-alueelle, jotta n\u00e4et sen toiminnassa.<\/p>\n<h3>Widget-alueen tulostaminen malliin<\/h3>\n<p>Viimeinen osa on widget-alueiden tulostaminen malleihimme. T\u00e4t\u00e4 varten k\u00e4yt\u00e4mme funktiota <code>dynamic_sidebar()<\/code>ja annamme kahvan parametrina. Avaa <code>sidebar.php<\/code>ja lis\u00e4\u00e4 seuraavat <code>&lt;aside&gt;<\/code>tunnisteiden sis\u00e4\u00e4n:<\/p>\n<pre><code>&lt;aside class=\"sidebar\"&gt;\n    &lt;ul&gt;&lt;?php dynamic_sidebar('sidebar-area'); ?&gt;&lt;\/ul&gt;\n&lt;\/aside&gt;<\/code><\/pre>\n<p>Huomaa, ett\u00e4 k\u00e4\u00e4rin sen j\u00e4rjest\u00e4m\u00e4tt\u00f6m\u00e4n luettelotunnisteen (<code>&lt;ul&gt;<\/code>) sis\u00e4\u00e4n. T\u00e4m\u00e4 johtuu siit\u00e4, ett\u00e4 oletusarvoisesti <code>dynamic_sidebar<\/code>tulostuu kaikki widgetit, jotka on k\u00e4\u00e4ritty kohteiksi <code>&lt;li&gt;<\/code>. Kehotan sinua leikkim\u00e4\u00e4n tulosparametreilla, jos et pid\u00e4 widgeteist\u00e4 luettelona.<\/p>\n<p>Mit\u00e4 tulee alatunnisteeseen, lis\u00e4\u00e4mme sen aivan julkaisun alussa <code>footer.php<\/code>k\u00e4\u00e4rittyn\u00e4 <code>&lt;footer&gt;<\/code>tunnisteen sis\u00e4\u00e4n (jos haluat).<\/p>\n<pre><code>    &lt;footer&gt;\n        &lt;ul&gt;&lt;?php dynamic_sidebar('footer-area'); ?&gt;&lt;\/ul&gt;\n    &lt;\/footer&gt;\n    &lt;?php wp_footer(); ?&gt;\n...<\/code><\/pre>\n<p>Siin\u00e4 kaikki valikot ja widget-alueet. Teemasi avulla k\u00e4ytt\u00e4j\u00e4 voi nyt luoda uuden valikon ja n\u00e4ytt\u00e4\u00e4 sen sivupalkissa tai alatunnisteessa widgetin avulla. T\u00e4m\u00e4n opetusohjelmasarjan <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-10-fleshing-out-templates\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seuraavalla oppitunnilla<\/a> luomme lis\u00e4\u00e4 malleja teemaamme.<\/p>\n<h2>Dokumentaatio k\u00e4ytetyist\u00e4 menetelmist\u00e4<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_action\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">add_action<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_nav_menu<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_nav_menu<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_sidebar\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_sidebar<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/dynamic_sidebar\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dynaaminen_sivupalkki<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4m\u00e4 oppitunti k\u00e4sittelee navigointivalikoiden lis\u00e4\u00e4mist\u00e4 rekister\u00f6im\u00e4ll\u00e4 valikon sijainti sek\u00e4 rekister\u00f6im\u00e4ll\u00e4 ja sijoittamalla widget-alueen WordPressiin.<\/p>\n","protected":false},"author":1,"featured_media":224072,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[927,750,895,719,719,895,1110,834,750,843,834,927,843,864,864],"tags":[1166],"class_list":["post-233855","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aiheita","category-avoin-laehdekoodi","category-koodi","category-kehittaejae","category-n-a","category-opas-aloittelijoille","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233855","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=233855"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233855\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/224072"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=233855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=233855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=233855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}