{"id":233508,"date":"2023-02-16T16:34:00","date_gmt":"2023-02-16T13:34:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233508"},"modified":"2022-11-11T00:04:22","modified_gmt":"2022-11-10T21:04:22","slug":"kuinka-lisaetae-upeita-kuvakkeita-valikon-kohtiin-mukautetuilla-kentillae","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/kuinka-lisaetae-upeita-kuvakkeita-valikon-kohtiin-mukautetuilla-kentillae\/","title":{"rendered":"Kuinka lis\u00e4t\u00e4 upeita kuvakkeita valikon kohtiin mukautetuilla kentill\u00e4"},"content":{"rendered":"\n<p>T\u00e4m\u00e4 viesti n\u00e4ytt\u00e4\u00e4, kuinka voit k\u00e4ytt\u00e4\u00e4 Advanced Custom Fields (ACF) -kentti\u00e4 kuvakkeiden lis\u00e4\u00e4miseen valikkoon. T\u00e4ss\u00e4 esimerkiss\u00e4 lis\u00e4\u00e4mme <a href=\"https:\/\/fontawesome.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Fontawesome-<\/a> kuvakkeen, mutta voit muokata koodia tarpeidesi mukaan. Voit sen sijaan lis\u00e4t\u00e4 tiedostovalitsimen SVG-tiedostoille tai jotain muuta.<\/p>\n<p>T\u00e4m\u00e4 opas toimii <a href=\"https:\/\/wordpress.org\/plugins\/advanced-custom-fields\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Advanced Custom Fields -sovelluksen ilmaisen version kanssa<\/a>, mutta varmista, ett\u00e4 sinulla on versio 5.6 tai uudempi.<\/p>\n<h2>ACF-ryhm\u00e4n ja -kent\u00e4n lis\u00e4\u00e4minen<\/h2>\n<p>Ensimm\u00e4inen vaihe on itse kent\u00e4n lis\u00e4\u00e4minen valikon kohtiin. T\u00e4m\u00e4 opas lis\u00e4\u00e4 tekstisy\u00f6tteen Fontawesome-kuvakkeen luokan nimen kirjoittamista varten, mutta jos haluat toisen ratkaisun (esim. SVG-tiedoston tiedostovalitsin), muokkaa kent\u00e4n sy\u00f6tteit\u00e4.<\/p>\n<p>Varmista, ett\u00e4 Advanced Custom Field -ryhm\u00e4si sijainniksi on asetettu &quot;Valikkokohde&quot;. Voit m\u00e4\u00e4ritt\u00e4\u00e4 sen arvoksi &quot;Kaikki&quot; tai voit m\u00e4\u00e4ritt\u00e4\u00e4 valikon sijaintien tai valikoiden mukaan.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153055-61e506fa60c76.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-153055-61e506fa60c76.png\" alt=\"Kuinka lis\u00e4t\u00e4 upeita kuvakkeita valikon kohtiin mukautetuilla kentill\u00e4\" ><\/a><\/p>\n<p>Jos lis\u00e4\u00e4t kentti\u00e4si ja ryhmittelet koodin mukaan, aseta sijaintiparametriksi &quot; <code>nav_menu_item<\/code>&quot;. Katso lis\u00e4tietoja <a href=\"https:\/\/awhitepixel.com\/blog\/complete-reference-for-adding-advanced-custom-fields-acf-fields-and-groups-by-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ACF-kenttien lis\u00e4\u00e4misest\u00e4 koodin<\/a> mukaan t\u00e4ydellisest\u00e4 viitteest\u00e4ni.<\/p>\n<pre><code>acf_add_local_field_group([\n    ...\n    'location' =&gt; [\n        [\n            [\n                'param' =&gt; 'nav_menu_item',\n                'operator' =&gt; '==',\n                'value' =&gt; 'all'\n            ]\n        ]\n    ]\n]);<\/code><\/pre>\n<p>Mit\u00e4 tulee itse kentt\u00e4\u00e4n, lis\u00e4\u00e4mme yksinkertaisen tekstinsy\u00f6tteen nimell\u00e4 &quot; <code>fontawesome_icon<\/code>&quot;.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153055-61e506fd705e6.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-153055-61e506fd705e6.png\" alt=\"Kuinka lis\u00e4t\u00e4 upeita kuvakkeita valikon kohtiin mukautetuilla kentill\u00e4\" ><\/a><\/p>\n<p>Tai lis\u00e4\u00e4 kentt\u00e4 koodilla seuraavasti:<\/p>\n<pre><code>[\n    'key' =&gt; 'field_fontawesome_icon',\n    'label' =&gt; __('Fontawesome icon class', 'txtdomain'),\n    'name' =&gt; 'fontawesome_icon',\n    'instructions' =&gt; __('Type the name of a &lt;a href=\"https:\/\/fontawesome.com\/icons?d=gallery&amp;m=free\" target=\"_blank\"&gt;Fontawesome icon&lt;\/a&gt; class. Example: \"fab fa-facebook\".', 'txtdomain'),\n    'type' =&gt; 'text',\n]<\/code><\/pre>\n<p>Jotta se olisi k\u00e4ytt\u00e4j\u00e4yst\u00e4v\u00e4llisempi, on hyv\u00e4 idea lis\u00e4t\u00e4 kuvaus, jossa on linkki <a href=\"https:\/\/fontawesome.com\/icons?d=gallery&#038;m=free\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">saatavilla olevien Fontawesome-kuvakkeiden yleiskatsaukseen<\/a>. Lis\u00e4\u00e4n linkin n\u00e4ytt\u00e4\u00e4ksesi vain ilmaiset kuvakkeet, en mit\u00e4\u00e4n Pro-kuvakkeita, koska t\u00e4m\u00e4 on teemani kirjasto.<\/p>\n<p>Kun olet tallentanut kent\u00e4n j\u00e4rjestelm\u00e4nvalvojaan tai koodiin, sinun pit\u00e4isi nyt saada lis\u00e4kentt\u00e4, kun laajennat valikkokohtaa:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153055-61e507009e5b9.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-153055-61e507009e5b9.png\" alt=\"Kuinka lis\u00e4t\u00e4 upeita kuvakkeita valikon kohtiin mukautetuilla kentill\u00e4\" ><\/a><\/p>\n<h2>Huomautus Fontawesome-luokista<\/h2>\n<p>&quot;Vanhoina aikoina&quot;, ennen Fontawesome 5:t\u00e4, Fontawesome-luokan tarjoaminen voisi olla k\u00e4ytt\u00e4j\u00e4lle hieman yksinkertaisempaa. Ostoskoriin voit kirjoittaa yksinkertaisesti &quot;ostoskori&quot; ja koodiimme voisi lis\u00e4t\u00e4 luokan &quot; <code>fa fa-<\/code>&quot; ja sitten annetun luokan (jolloin on &quot; <code>fa fa-shopping-cart<\/code>&quot;). Mutta Fontawesome 5:n j\u00e4lkeen luokat ovat olleet hieman monimutkaisia.<\/p>\n<p>&quot;Yleinen&quot; luokka &quot; <code>fa<\/code>&quot; on korvattu kuvaketyyppikohtaisilla luokilla. Esimerkiksi sosiaalinen media tai logot kuuluvat tuotemerkkiluokkaan ja edellytt\u00e4v\u00e4t luokkaa &quot; <code>fab<\/code>&quot;, kiinte\u00e4t kuvakkeet vaativat luokan &quot; <code>fas<\/code>&quot;, kun taas tavalliset kuvakkeet vaativat &quot; <code>far<\/code>&quot; ja niin edelleen. T\u00e4st\u00e4 syyst\u00e4 meid\u00e4n on nyt vaadittava teeman k\u00e4ytt\u00e4j\u00e4\u00e4 kirjoittamaan molemmat Fontawesome-luokat. Oikean luokan l\u00f6yt\u00e4misen pit\u00e4isi olla helppoa, koska se n\u00e4kyy selv\u00e4sti jokaisessa Fontawesomen sivuston kuvakkeessa:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153055-61e50702d0f82.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-153055-61e50702d0f82.png\" alt=\"Kuinka lis\u00e4t\u00e4 upeita kuvakkeita valikon kohtiin mukautetuilla kentill\u00e4\" ><\/a><\/p>\n<p>Esimerkkin\u00e4 sinun on kirjoitettava &quot; <code>fas fa-shopping-cart<\/code>&quot; mukautettuun kentt\u00e4\u00e4n ostoskorikuvakkeen valikon kohtaan.<\/p>\n<h2>Kuvakkeen n\u00e4ytt\u00e4minen valikossa<\/h2>\n<p>Seuraava ja viimeinen vaihe on kuvakkeen render\u00f6iminen valikossa, jos se on asetettu. K\u00e4yt\u00e4mme t\u00e4h\u00e4n WordPress-suodatinta <code>[wp_nav_menu_objects](https:\/\/developer.wordpress.org\/reference\/hooks\/wp_nav_menu_objects\/)<\/code>. T\u00e4t\u00e4 suodatinta k\u00e4ytet\u00e4\u00e4n jokaisessa valikossa kaikissa hahmonnetuissa valikoissa juuri ennen sen HTML-koodin luomista, jolloin voimme muokata tekstin tulostusta, luokkia ja paljon muuta.<\/p>\n<p>Se, kuinka haluat kuvakkeen tulostaa, on j\u00e4lleen sinun p\u00e4\u00e4tett\u00e4viss\u00e4si. Haluatko korvata linkin tekstin kuvakkeella vai haluatko n\u00e4ytt\u00e4\u00e4 kuvakkeen joko ennen tekstilinkki\u00e4 vai sen j\u00e4lkeen? Seuraamme Fontawesome-tapaa tulostamalla <code>&lt;i&gt;<\/code>tunnisteen toimitetulla luokalla.<\/p>\n<pre><code>add_filter('wp_nav_menu_objects', function($items) {\n    foreach ($items as &amp;$item) {\n        $icon = get_field('fontawesome_icon', $item);     \n        if ($icon) {\n            $item-&gt;title = '&lt;i class=\"'. $icon. '\"&gt;&lt;\/i&gt;'. $item-&gt;title;\n        }\n    }\n    return $items;\n});<\/code><\/pre>\n<p>Tapa, jolla muokkaamme valikkokohtia, on selata valikon kohtia k\u00e4ytt\u00e4m\u00e4ll\u00e4 pass by-viittausta (lis\u00e4\u00e4m\u00e4ll\u00e4 <code>&amp;<\/code>muuttujan eteen). T\u00e4m\u00e4 tarkoittaa, ett\u00e4 kaikki alkioon tekem\u00e4mme muutokset vaikuttavat vanhempien kohteiden objektiin.<\/p>\n<p>K\u00e4yt\u00e4mme jokaiselle kohteelle Advanced Custom Field <code>get_field()<\/code>-toimintoa saadaksemme kent\u00e4n arvon <code>fontawesome_icon<\/code>. Jos se on asetettu, voimme menn\u00e4. Yll\u00e4 oleva koodiesimerkki lis\u00e4\u00e4 kuvakkeen tekstin eteen. Jos haluat lis\u00e4t\u00e4 kuvakkeen tekstin j\u00e4lkeen, korvaa rivi <code>#6<\/code>seuraavasti:<\/p>\n<pre><code>$item-&gt;title .= '&lt;i class=\"'. $icon. '\"&gt;&lt;\/i&gt;';<\/code><\/pre>\n<p>Tai jos haluat korvata tekstin kuvakkeella \u2013 teksti\u00e4 ei n\u00e4y lainkaan, korvaa rivi <code>#6<\/code>seuraavalla:<\/p>\n<pre><code>$item-&gt;title = '&lt;i class=\"'. $icon. '\" title=\"'. $item-&gt;title. '\"&gt;&lt;\/i&gt;';<\/code><\/pre>\n<p>Lis\u00e4sin <code>title<\/code>attribuutin, jotta se on hieman informatiivisempi k\u00e4ytt\u00f6liittym\u00e4n k\u00e4ytt\u00e4j\u00e4lle. Koska teksti on poistettu, se voi joskus olla h\u00e4mment\u00e4v\u00e4\u00e4 loppuk\u00e4ytt\u00e4j\u00e4lle, mit\u00e4 varten valikkokohta on tarkoitettu. Mutta <code>title<\/code>attribuutti varmistaa, ett\u00e4 k\u00e4ytt\u00e4j\u00e4 saa ty\u00f6kaluvihjeen valikkokohdan tekstill\u00e4, kun h\u00e4n vie hiiren osoittimen kuvakkeen p\u00e4\u00e4lle. T\u00e4m\u00e4 on tietysti t\u00e4ysin vapaaehtoista.<\/p>\n<p>Jos k\u00e4yt\u00e4t erityyppist\u00e4 kentt\u00e4\u00e4, esim. SVG-tiedostojen tiedostonpoimijaa, sinun tulee s\u00e4\u00e4t\u00e4\u00e4 tulostetta vastaavasti.<\/p>\n<p>Ja siin\u00e4 se! Sinun pit\u00e4isi nyt saada Fontawesome-kuvake kaikkialle, miss\u00e4 valikko n\u00e4ytet\u00e4\u00e4n. Mutta sinun t\u00e4ytyy luultavasti lis\u00e4t\u00e4 siihen tyyli\u00e4. Esimerkiksi v\u00e4lily\u00f6nnin lis\u00e4\u00e4minen kuvakkeen ja tekstin v\u00e4liin.<\/p>\n<h3>Luokkien lis\u00e4\u00e4minen helpottamaan muotoilua<\/h3>\n<p>Voit lis\u00e4t\u00e4 <code>&lt;i&gt;<\/code>tunnisteeseen mukautettuja luokkia tai lis\u00e4t\u00e4 HTML-koodia tarvittaessa.<\/p>\n<p>Jos sinun on lis\u00e4tt\u00e4v\u00e4 luokka rivitysvalikon kohtaan (<code>li<\/code>elementtiin), sinulla on t\u00e4ysi p\u00e4\u00e4sy valikon kohtien luokkiin, joita k\u00e4ytet\u00e4\u00e4n yll\u00e4 olevassa suodattimessa. Lis\u00e4\u00e4 mukautettu valikkokohdeluokka kuvakevalikkokohdille, kuten esimerkiksi:<\/p>\n<pre><code>        ...\n        if ($icon) {\n            $item-&gt;title = '&lt;i class=\"'. $icon. '\"&gt;&lt;\/i&gt;'. $item-&gt;title;\n            $item-&gt;classes[] = 'menu-with-icon';\n        }\n        ...<\/code><\/pre>\n<p>Valikko tulee tulostaa seuraavasti:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153055-61e507050aa94.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-153055-61e507050aa94.png\" alt=\"Kuinka lis\u00e4t\u00e4 upeita kuvakkeita valikon kohtiin mukautetuilla kentill\u00e4\" ><\/a><\/p>\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>Kuinka lis\u00e4t\u00e4 Fontawesome-kuvakkeita valikon kohtiin. K\u00e4yt\u00e4mme Advanced Custom Fields -kentti\u00e4 luokkien m\u00e4\u00e4ritt\u00e4miseen. SVG-kuvakkeiden tai vastaavien koodin s\u00e4\u00e4t\u00e4minen on helppoa.<\/p>\n","protected":false},"author":1,"featured_media":224889,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[895,719,719,895,1110,834,843,803,803,834,843,864,864],"tags":[1166],"class_list":{"0":"post-233508","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-koodi","8":"category-kehittaejae","11":"category-n-a","12":"category-opas-aloittelijoille","13":"category-opetusohjelmia","14":"category-php-5","18":"category-wordpress-5","20":"tag-affiai-fi"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233508","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=233508"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233508\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/224889"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=233508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=233508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=233508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}