{"id":233698,"date":"2023-02-21T13:04:00","date_gmt":"2023-02-21T10:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233698"},"modified":"2022-11-11T08:55:40","modified_gmt":"2022-11-11T05:55:40","slug":"wordpress-teeman-opetusohjelma-aloittelijoille-osa-7-teeman-asetukset-ja-suositellut-kuvat","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-teeman-opetusohjelma-aloittelijoille-osa-7-teeman-asetukset-ja-suositellut-kuvat\/","title":{"rendered":"WordPress-teeman opetusohjelma aloittelijoille \u2013 Osa 7: Teeman asetukset ja suositellut kuvat"},"content":{"rendered":"\n<p>T\u00e4m\u00e4 WordPress-teeman opetusohjelman oppitunti aloittelijoille jatkuu lis\u00e4\u00e4m\u00e4ll\u00e4 teeman m\u00e4\u00e4ritt\u00e4miseen tarvittavan peruskoodin. Opimme lis\u00e4\u00e4m\u00e4\u00e4n teematukea, ja sen seurauksena WordPressin esitelty kuvatoiminto aktivoituu. T\u00e4ll\u00e4 oppitunnilla korjaamme my\u00f6s etusivun otsikon k\u00e4ytt\u00e4m\u00e4ll\u00e4 ensimm\u00e4ist\u00e4 suodatinta.<\/p>\n<p>Ty\u00f6skentelemme enimm\u00e4kseen <code>functions.php<\/code>tiedostossa, jonka lis\u00e4simme <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-6-a-themes-functions-file\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">edellisell\u00e4 oppitunnilla<\/a>. Lopuksi lis\u00e4\u00e4mme koodin esiteltyjen kuvien tulostamiseksi malleihimme.<\/p>\n<h2>Teeman asetukset<\/h2>\n<p>Kaikki teemat tarvitsevat koodin sen m\u00e4\u00e4ritt\u00e4miseksi k\u00e4skem\u00e4ll\u00e4 WordPressi\u00e4 aktivoimaan tietyt toiminnot. T\u00e4m\u00e4 sis\u00e4lt\u00e4\u00e4 valikoiden, widgetien, k\u00e4\u00e4nn\u00f6sten ja niin edelleen aktivoimisen. T\u00e4m\u00e4 tehd\u00e4\u00e4n yleens\u00e4 &quot;asennusteematoiminnossa&quot;, joka on yleens\u00e4 kiinnitetty k\u00e4tev\u00e4sti nimettyyn koukkuun <code>after_setup_theme<\/code>. Joihinkin tiettyihin asioihin meid\u00e4n on k\u00e4ytett\u00e4v\u00e4 WordPressin alustuskoukkua nimelt\u00e4 <code>init<\/code>.<\/p>\n<h3>Tarvittavan teeman asetuskoodin kirjoittaminen<code>after_setup_theme<\/code><\/h3>\n<p>Asetetaan t\u00e4llainen &quot;teeman m\u00e4\u00e4ritystoiminto&quot; -sovellukseemme <code>functions.php<\/code>, joka on koukussa <code>after_setup_theme<\/code>:<\/p>\n<pre><code>add_action('after_setup_theme', 'wptutorial_setup_theme');\nfunction wptutorial_setup_theme() {\n\u00a0\n}<\/code><\/pre>\n<p>T\u00e4m\u00e4n toiminnon sis\u00e4\u00e4n lis\u00e4\u00e4mme joukon yleisi\u00e4 ja hy\u00f6dyllisi\u00e4 asennustoimintoja WordPress-teemoihin. Aseta kaikki seuraavat koodikappaleet asetustoimintoon.<\/p>\n<p>Ensin meid\u00e4n on m\u00e4\u00e4ritett\u00e4v\u00e4 kuvien ja upotusten (kuten videoiden) enimm\u00e4isleveys. T\u00e4m\u00e4 varmistaa, ett\u00e4 kun kirjoittajat lis\u00e4\u00e4v\u00e4t suuria kuvia viesteihin, kuvat pysyv\u00e4t tietyn leveyden sis\u00e4ll\u00e4. Asetin sen 840 pikseliin (koska haluan tilaa sivupalkille), mutta voit s\u00e4\u00e4t\u00e4\u00e4 t\u00e4t\u00e4 haluamallasi tavalla.<\/p>\n<pre><code>$GLOBALS['content_width'] = 840;<\/code><\/pre>\n<p>Meid\u00e4n tulee my\u00f6s ilmoittaa WordPressille, ett\u00e4 teema on k\u00e4\u00e4nnett\u00e4v\u00e4 ja mist\u00e4 se voi etsi\u00e4 k\u00e4\u00e4nn\u00f6stiedostoja. Siirryn WordPress-teeman k\u00e4\u00e4nt\u00e4miseen yksityiskohtaisesti t\u00e4m\u00e4n teema-opetussarjan <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\">seuraavassa vaiheessa .<\/a><\/p>\n<pre><code>load_theme_textdomain('wptutorial', get_stylesheet_directory(). '\/lang');<\/code><\/pre>\n<p>Huomaa uuden toiminnon k\u00e4ytt\u00f6 teemahakemiston saamiseksi, <code>get_stylesheet_directory()<\/code>. T\u00e4m\u00e4 on hyvin samanlainen kuin <code>get_stylesheet_directory_uri()<\/code>viimeisess\u00e4 vaiheessa, mutta t\u00e4ss\u00e4 tarvitsemme suhteellisen polun, ei URL-osoitetta.<\/p>\n<p>Sitten meid\u00e4n on lis\u00e4tt\u00e4v\u00e4 joitain &quot;teematukea&quot;, jotka aktivoivat WordPressin toimintoja, joita ei ole aktivoitu oletuksena.<\/p>\n<pre><code>add_theme_support('automatic-feed-links');\nadd_theme_support('post-thumbnails');\nadd_theme_support('html5', [\n    'search-form',\n    'comment-form',\n    'comment-list',\n    'gallery',\n    'caption',\n]);\nadd_theme_support('custom-logo', [\n    'height'      =&gt; 100,\n    'width'       =&gt; 300,\n    'flex-width'  =&gt; true,\n    'flex-height' =&gt; false,\n]);\nadd_theme_support('customize-selective-refresh-widgets');<\/code><\/pre>\n<p>Se oli koko joukko <code>add_theme_support<\/code>puheluita! Kuten nimest\u00e4 voi p\u00e4\u00e4tell\u00e4, <code>add_theme_support<\/code>k\u00e4skee WordPressi\u00e4 aktivoimaan ominaisuuksia, joita ei ole aktivoitu oletusarvoisesti. Esimerkiksi esitellyt kuvat (&#8217;post-thumbnails&#8217;), tuki HTML5-tageille ja WordPressin mukautettu logoominaisuus Customizerissa (s\u00e4\u00e4d\u00e4 haluttua logokuvaa, jos haluat!).<\/p>\n<p>Tarjolla on monia muita hienoja ominaisuuksia, joten suosittelen <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_theme_support\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tutustumaan add_theme_supportin dokumentaatioon<\/a>. Esimerkiksi siell\u00e4 on melko uusi, <code>title-tag<\/code>, joka k\u00e4sittelee otsikkotunnisteen. Olen j\u00e4tt\u00e4nyt sen pois t\u00e4st\u00e4 opetusohjelmasta, koska olemme jo lis\u00e4nneet otsikkotunnisteen <code>header.php<\/code>manuaalisesti.<\/p>\n<p>Muista, ett\u00e4 jos lis\u00e4\u00e4t tuen tiedostolle <code>title-tag<\/code>, sinun tulee poistaa otsikkotunniste otsikkotiedostostasi, jotta et saa p\u00e4\u00e4llekk\u00e4isi\u00e4 otsikkotunnisteita.<\/p>\n<p>Lopuksi lis\u00e4\u00e4mme muutaman <code>add_theme_support<\/code>uuden Gutenbergin WordPressiss\u00e4. Lis\u00e4\u00e4mme tuen leveille osiolle, aktivoivat lohkotyylien toiminnallisuuden ja tuen responsiivisille upotuksille:<\/p>\n<pre><code>add_theme_support('wp-block-styles');\nadd_theme_support('align-wide');\nadd_theme_support('responsive-embeds');<\/code><\/pre>\n<h3>Lopputulos<\/h3>\n<p>T\u00e4ss\u00e4 on viimeinen asennustoiminto <code>functions.php<\/code>:<\/p>\n<pre><code>add_action('after_setup_theme', 'wptutorial_setup_theme');\nfunction wptutorial_setup_theme() {\n    $GLOBALS['content_width'] = 840;\n    \/\/ Make your theme ready for translation\n    load_theme_textdomain('wptutorial', get_stylesheet_directory(). '\/lang');\n    \/\/ Add theme support for WordPress functionality\n    add_theme_support('automatic-feed-links');\n    add_theme_support('title-tag');\n    add_theme_support('post-thumbnails');\n    add_theme_support('html5', [\n        'search-form',\n        'comment-form',\n        'comment-list',\n        'gallery',\n        'caption',\n    ]);\n    add_theme_support('custom-logo', [\n        'height'      =&gt; 100,\n        'width'       =&gt; 300,\n        'flex-width'  =&gt; true,\n        'flex-height' =&gt; false,\n    ]);\n    add_theme_support('customize-selective-refresh-widgets');\n    \/\/ Add theme support for Gutenberg specific functionality\n    add_theme_support('wp-block-styles');\n    add_theme_support('align-wide');\n    add_theme_support('responsive-embeds');\n}<\/code><\/pre>\n<p>Tallentamisen j\u00e4lkeen sinun pit\u00e4isi nyt pysty\u00e4 lis\u00e4\u00e4m\u00e4\u00e4n suositeltuja kuvia j\u00e4rjestelm\u00e4nvalvojan viesteihin! Lis\u00e4t\u00e4\u00e4n viel\u00e4 yksi teemakorjaus, <code>functions.php<\/code>ennen kuin lis\u00e4\u00e4mme esittelykuvia malleihimme. muistatko, ett\u00e4 <code>wp_title<\/code>oletuksena <code>header.php<\/code>ei voi kaikua mit\u00e4\u00e4n etusivulla? Korjataan se.<\/p>\n<h2>Suodattimen lis\u00e4\u00e4minen<code>wp_title<\/code><\/h2>\n<p>Lis\u00e4t\u00e4\u00e4n ensimm\u00e4inen oikea suodattimen muokkaustoiminto k\u00e4ytt\u00e4m\u00e4ll\u00e4 <code>add_filter()<\/code>. Suodattimella, johon liit\u00e4mme, on sama nimi kuin funktiolla, jota k\u00e4ytimme WordPressiss\u00e4 sivun otsikon dynaamiseen hakemiseen; <code>wp_title<\/code>. Korjaamme sen, ett\u00e4 otsikko ei ole tyhj\u00e4 etusivulla \u2013 mik\u00e4 on oletusarvo WordPressiss\u00e4. Kun olemme etusivulla, haluamme, ett\u00e4 se t\u00e4ytet\u00e4\u00e4n WordPress-sivuston nimell\u00e4.<\/p>\n<p>Muista <strong>aina palauttaa<\/strong> suodatettu muuttuja suodatinfunktioissasi! Kaikki suodattimet muokkaavat muuttujaa, ja jos et palauta mit\u00e4\u00e4n, muuttujasta tulee m\u00e4\u00e4rittelem\u00e4t\u00f6n. T\u00e4m\u00e4 voi aiheuttaa paljon ongelmia. Jos haluat lis\u00e4tietoja suodattimista, katso <a href=\"http:\/\/awhitepixel.com\/blog\/all-about-hooks-in-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">viesti\u00e4ni, joka selitt\u00e4\u00e4 kaiken koukuista ja suodattimista<\/a>.<\/p>\n<h3>Tiet\u00e4\u00e4, milloin otsikkoa tulee muokata<\/h3>\n<p>Haluamme muokata otsikkomuuttujaa vain, jos olemme etusivulla. Haluamme j\u00e4tt\u00e4\u00e4 sen kaikille muille sivuille (palauta se sellaisenaan). Mutta mist\u00e4 tied\u00e4mme, milloin olemme etusivulla?<\/p>\n<p>Voimme hy\u00f6dynt\u00e4\u00e4 <a href=\"https:\/\/codex.wordpress.org\/Conditional_Tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressin ehdollisia tageja<\/a>, jotka ovat koko joukko hy\u00f6dyllisi\u00e4 toimintoja, jotka palauttavat tosi tai ep\u00e4tosi ehdon perusteella. N\u00e4it\u00e4 k\u00e4ytet\u00e4\u00e4n yleisimmin kysym\u00e4\u00e4n, olemmeko tietyll\u00e4 sivulla tai mallissa. Voimme vain kysy\u00e4 &quot;Olemmeko etusivulla?&quot;. Jos t\u00e4m\u00e4 menetelm\u00e4 palauttaa true, vain silloin muokkaamme otsikkomuuttujaa.<\/p>\n<p>On syyt\u00e4 huomata, ett\u00e4 etusivulla on kaksi ehdollista tagia, nimitt\u00e4in <code>is_home()<\/code>ja <code>is_front_page().<\/code>N\u00e4m\u00e4 vaihtelevat &quot;Luku&quot;-asetuksen mukaan \u2013 onko etusivullasi uusimmat viestit vai onko se asetettu kiinte\u00e4lle sivulle. Jos seuraat t\u00e4t\u00e4 opetusohjelmaa upouudella WordPress-asennuksella oletusasetuksilla, k\u00e4yt\u00e4t <code>is_front_page()<\/code>.<\/p>\n<h3>WordPress-sivuston nimen saaminen<\/h3>\n<p>Nyt tied\u00e4mme, mit\u00e4 suodatinta k\u00e4ytet\u00e4\u00e4n ja kuinka varmistaa, ett\u00e4 muutamme otsikkoa vain, jos olemme oikeassa paikassa. Mutta mik\u00e4 otsikon pit\u00e4isi olla? Yleens\u00e4 etusivun sivun otsikko on WordPress-sivustosi nimi. Mutta miten saamme t\u00e4m\u00e4n tiedon?<\/p>\n<p>K\u00e4yt\u00e4mme <code>bloginfo()<\/code>toimintoa tiedon hakemiseen nykyisest\u00e4 WordPress-asennuksesta. Parametriksi pyyd\u00e4mme palauttamaan sivuston nimen, mik\u00e4 tehd\u00e4\u00e4n asettamalla parametriksi &quot; <code>name<\/code>&quot;. Ja koska t\u00e4m\u00e4 on suodatin ja meid\u00e4n on palautettava se, ei toistettava sit\u00e4, k\u00e4yt\u00e4mme sen sisarmenetelm\u00e4\u00e4 <code>get_bloginfo()<\/code>. Soittaminen toistaa <code>bloginfo()<\/code>aina.<\/p>\n<pre><code>add_filter('wp_title', 'wptutorial_title_filter');\nfunction wptutorial_title_filter($title) {\n    if (is_front_page()) {\n        return get_bloginfo('name');\n    }\n    return $title;\n}<\/code><\/pre>\n<p>Jos p\u00e4ivit\u00e4t etusivusi, sinun pit\u00e4isi n\u00e4hd\u00e4, ett\u00e4 sivustosi nimi n\u00e4kyy <code>&lt;title&gt;<\/code>tagissa (ja selaimen v\u00e4lilehdess\u00e4)! Suodattimemme vaikuttaa vain etusivulle, joten kaikkien muiden sivujen, kuten yksitt\u00e4isten viestien, pit\u00e4isi silti palauttaa samat kuin ennenkin; postauksen otsikko.<\/p>\n<h2>Suositeltujen kuvien n\u00e4ytt\u00e4minen mallitiedostoissa<\/h2>\n<p>Aiemmin, kun m\u00e4\u00e4ritimme teematuen, lis\u00e4simme tuen esiteltyille kuville. Kun t\u00e4m\u00e4 on aktivoitu, voimme nyt tulostaa n\u00e4m\u00e4 kuvat malleihimme. Tehd\u00e4\u00e4n se nyt!<\/p>\n<p>Avaa <code>index.php<\/code>ja etsi heille paikka silmukan sis\u00e4ll\u00e4. P\u00e4\u00e4tin sijoittaa sen otsikon j\u00e4lkeen, mutta se on sinun, mihin haluat ne. K\u00e4yt\u00e4t toimintoa <code>the_post_thumbnail()<\/code>kuvan tulostamiseen. Suosittelemme ensin tarkistamaan, onko viestiss\u00e4 edes asetettu esittelykuva, mink\u00e4 teemme k\u00e4ytt\u00e4m\u00e4ll\u00e4 <code>has_post_thumbnail()<\/code>.<\/p>\n<pre><code>...\n    &lt;h2&gt;&lt;a href=\"&lt;?php the_permalink(); ?&gt;\" title=\"&lt;?php the_title(); ?&gt;\"&gt;&lt;?php the_title(); ?&gt;&lt;\/a&gt;&lt;\/h2&gt;\n    &lt;?php if (has_post_thumbnail()) {\n        the_post_thumbnail();\n    } ?&gt;\n    &lt;?php the_excerpt(); ?&gt;\n...<\/code><\/pre>\n<p>Jos viestiss\u00e4si ei ole esitelty\u00e4 kuvaa, otsikon j\u00e4lkeen ei n\u00e4ytet\u00e4 mit\u00e4\u00e4n. Jos kuitenkin asetat suositellun kuvan johonkin viestiisi, <code>the_post_thumbnail()<\/code>se <code>&lt;img&gt;<\/code>tulostaisi valitun kuvan sis\u00e4lt\u00e4v\u00e4n tunnisteen. T\u00e4m\u00e4 toiminto hyv\u00e4ksyy joitain lis\u00e4parametreja. Voit esimerkiksi m\u00e4\u00e4ritt\u00e4\u00e4, mit\u00e4 kuvakokoa haluat k\u00e4ytt\u00e4\u00e4, ja hallita kuvaan lis\u00e4ttyj\u00e4 attribuutteja. Kuten tavallista, kehotan sinua vilkaisemaan <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_post_thumbnail\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentaatiota<\/a> nopeasti ja muokkaamaan niit\u00e4 mielesi mukaan.<\/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\/load_theme_textdomain\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">load_theme_textdomain<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_stylesheet_directory\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_stylesheet_directory<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_theme_support\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">add_theme_support<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_filter\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">add_filter<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/is_front_page\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">on_etusivu<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_bloginfo\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_bloginfo<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/has_post_thumbnail\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">has_post_thumbnail<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_post_thumbnail\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">the_post_thumbnail<\/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 jatkuu lis\u00e4\u00e4m\u00e4ll\u00e4 WordPress-teeman m\u00e4\u00e4ritt\u00e4miseen tarvittavan peruskoodin. Opimme lis\u00e4\u00e4m\u00e4\u00e4n teematukea ja suodattamaan etusivun otsikon.<\/p>\n","protected":false},"author":1,"featured_media":224083,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[927,895,719,719,895,1110,834,843,803,803,834,927,843,864,864],"tags":[1166],"class_list":{"0":"post-233698","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-aiheita","8":"category-koodi","9":"category-kehittaejae","12":"category-n-a","13":"category-opas-aloittelijoille","14":"category-opetusohjelmia","15":"category-php-5","20":"category-wordpress-5","22":"tag-affiai-fi"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233698","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=233698"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233698\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=233698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=233698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=233698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}