{"id":233333,"date":"2023-02-11T19:45:00","date_gmt":"2023-02-11T16:45:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233333"},"modified":"2022-11-10T20:32:01","modified_gmt":"2022-11-10T17:32:01","slug":"wordpress-teeman-opetusohjelma-aloittelijoille-osa-5-viestitietojen-kaeyttoe","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-teeman-opetusohjelma-aloittelijoille-osa-5-viestitietojen-kaeyttoe\/","title":{"rendered":"WordPress-teeman opetusohjelma aloittelijoille \u2013 Osa 5: Viestitietojen k\u00e4ytt\u00f6"},"content":{"rendered":"\n<p>T\u00e4m\u00e4 WordPress-teeman opetusohjelman oppitunti aloittelijoille k\u00e4sittelee sit\u00e4, kuinka voimme k\u00e4ytt\u00e4\u00e4 ja tulostaa tietoja, kuten sen linkin, otsikon ja muuta jokaisesta viestist\u00e4, kun olemme viestisilmukan sis\u00e4ll\u00e4. Teemme t\u00e4m\u00e4n mallitunnisteilla. Samanaikaisesti lis\u00e4\u00e4mme teemaamme my\u00f6s yksitt\u00e4isen n\u00e4kym\u00e4n mallit.<\/p>\n<p>Edellisess\u00e4 <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-4-accessing-posts-with-the-loop\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vaiheessa<\/a> lis\u00e4simme post-silmukan, joka sis\u00e4lt\u00e4\u00e4 <code>the_post()<\/code>toiminnon. T\u00e4m\u00e4 funktio m\u00e4\u00e4ritt\u00e4\u00e4 globaalit muuttujat ja varmistaa, ett\u00e4 voimme k\u00e4ytt\u00e4\u00e4 yksinkertaisia \u200b\u200bja intuitiivisia funktiokutsuja, joita kutsutaan <a href=\"https:\/\/codex.wordpress.org\/Template_Tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">mallitunnisteiksi<\/a>, kun olemme <code>while<\/code>silmukan sis\u00e4ll\u00e4.<\/p>\n<h2>Yleisimm\u00e4t postaussilmukassa k\u00e4ytett\u00e4v\u00e4t mallitunnisteet<\/h2>\n<p>T\u00e4m\u00e4 on luettelo yleisimmist\u00e4 mallitunnisteista, joita haluat k\u00e4ytt\u00e4\u00e4 postauksen tietojen k\u00e4ytt\u00e4miseen:<\/p>\n<ul>\n<li><code>the_title()<\/code>toistaa viestin otsikon.<\/li>\n<li><code>the_permalink()<\/code>tulostaa viestin pysyv\u00e4n linkin\/URL-osoitteen.<\/li>\n<li><code>the_content()<\/code>tulostaa viestin sis\u00e4ll\u00f6n (editorilta)<\/li>\n<li><code>the_excerpt()<\/code>toistaa viestin otteen. Jos otekentt\u00e4 on tyhj\u00e4, t\u00e4m\u00e4 toistaa tekstin sis\u00e4ll\u00f6st\u00e4 ensimm\u00e4iset 55 sanaa &quot;\u2026&quot; kanssa.<\/li>\n<li><code>the_ID()<\/code>tulostaa viestin tunnuksen.<\/li>\n<li><code>the_category()<\/code>toistaa kaikki liittyv\u00e4t luokat.<\/li>\n<li><code>the_tags()<\/code>tulostaa kaikki liittyv\u00e4t tunnisteet.<\/li>\n<li><code>the_date()<\/code>toistaa viestin julkaisup\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n.<\/li>\n<li><code>the_time()<\/code>tulostaa viestin julkaisuajan.<\/li>\n<li><code>the_author()<\/code>toistaa viestin kirjoittajan n\u00e4ytt\u00f6nimen<\/li>\n<li><code>the_post_thumbnail()<\/code>tulostaa viestin esittelykuvan. Opimme lis\u00e4\u00e4m\u00e4\u00e4n tuen esiteltyille pikkukuville my\u00f6hemmin t\u00e4ss\u00e4 opetusohjelmassa.<\/li>\n<\/ul>\n<p>On monia muitakin. Jos olet kiinnostunut, katso WordPress Codexin <a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/#Post_tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentaatio kaikista viestitunnisteista<\/a>. Katso lis\u00e4\u00e4 my\u00f6s otsikon &quot;post tags&quot; ulkopuolelle \u2013 ne ovat hieman hajallaan t\u00e4ll\u00e4 sivulla.<\/p>\n<p>Aloitetaan joidenkin n\u00e4iden tunnisteiden k\u00e4ytt\u00f6\u00f6notto <code>index.php<\/code>. Lis\u00e4\u00e4n my\u00f6s hyvin yksinkertaista HTML:\u00e4\u00e4 vain muotoillakseni tulosteen paremmin. Suosittelen lis\u00e4\u00e4m\u00e4\u00e4n oman HTML-koodisi! Lis\u00e4\u00e4 divsej\u00e4, jaksoja, osioita, otsikoita ja niin edelleen haluamillasi luokilla.<\/p>\n<h2>T\u00e4smennet\u00e4\u00e4n silmukkaa index.php:ss\u00e4<\/h2>\n<p><code>index.php<\/code>Haluaisin lis\u00e4t\u00e4 silmukan sis\u00e4\u00e4n linkin, joka menee viestin pysyv\u00e4\u00e4n linkkiin. Linkin sis\u00e4ll\u00e4 haluaisin toistaa viestin otsikon. Sitten haluaisin my\u00f6s toistaa postauksen otteen ja sen luokat.<\/p>\n<pre><code>&lt;?php get_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n    while (have_posts()): the_post();\n        &lt;article &lt;?php post_class(); ?&gt;&gt;\n            &lt;h2&gt;\n                &lt;a href=\"&lt;?php the_permalink(); ?&gt;\" title=\"&lt;?php the_title(); ?&gt;\"&gt;&lt;?php the_title(); ?&gt;&lt;\/a&gt;\n            &lt;\/h2&gt;\n            &lt;?php the_excerpt(); ?&gt;\n            &lt;?php the_category(); ?&gt;\n        &lt;\/article&gt;\n    endwhile;\n    the_posts_pagination();\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}\n?&gt;\n&lt;?php get_sidebar(); ?&gt;\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n<p>Mit\u00e4 yll\u00e4 oleva koodi tekee on;<\/p>\n<ul>\n<li>Rivi #5 lis\u00e4\u00e4 HTML- <code>&lt;article&gt;<\/code>tunnisteen kutsulla, <code>post_class()<\/code>joka luo hy\u00f6dyllisi\u00e4 viestiluokkia \u2013 aivan kuten <code>body_class()<\/code>k\u00e4ytimme <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-3-dynamic-content\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">edellisess\u00e4 vaiheessa<\/a>.<\/li>\n<li>Riville #6-8 lis\u00e4\u00e4mme <code>&lt;h2&gt;<\/code>otsikon tunnisteen, jossa on linkki, joka johtaa viestin pysyv\u00e4\u00e4n linkkiin (yksi n\u00e4kym\u00e4).<\/li>\n<li>Rivi #9 toistaa viestikatkelman.<\/li>\n<li>Ja rivill\u00e4 #10 toistamme viestin luokat. Koska en v\u00e4lit\u00e4 argumentteja t\u00e4lle kutsulle, se on oletuksena <code>&lt;ul&gt;<\/code>luettelo.<\/li>\n<\/ul>\n<p>T\u00e4m\u00e4 johtaa seuraavan tulosteen etusivua p\u00e4ivitett\u00e4ess\u00e4:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153917-61e51609c0d16.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-153917-61e51609c0d16.png\" alt=\"WordPress-teeman opetusohjelma aloittelijoille \u2013 Osa 5: Viestitietojen k\u00e4ytt\u00f6\" ><\/a><\/p>\n<p>Olemme tulossa jonnekin! Kehotan sinua tutustumaan kunkin tunnistefunktion dokumentaatioon, jonka parametrit ne hyv\u00e4ksyv\u00e4t. Voit muokata tulosta melko v\u00e4h\u00e4n! Ja p\u00e4\u00e4t\u00e4 itse, mit\u00e4 mallitunnisteita k\u00e4yt\u00e4t.<\/p>\n<p>Kokeile napsauttaa viestin linkki\u00e4 ja katso, ett\u00e4 p\u00e4\u00e4set kyseiselle yksitt\u00e4iselle viestisivulle. Voit nyt n\u00e4hd\u00e4, ett\u00e4 silmukka n\u00e4ytt\u00e4\u00e4 vain yhden viestin. Koska meill\u00e4 on kuitenkin t\u00e4ll\u00e4 hetkell\u00e4 vain yksi malli, <code>index.php<\/code>yksi n\u00e4kym\u00e4 k\u00e4ytt\u00e4\u00e4 my\u00f6s t\u00e4t\u00e4 mallia. Joten yksitt\u00e4isess\u00e4 n\u00e4kemyksess\u00e4 ei ole paljon j\u00e4rke\u00e4. Meid\u00e4n ei tarvitse linkitt\u00e4\u00e4 sit\u00e4 itseens\u00e4, vaan haluamme n\u00e4hd\u00e4 koko postauksen sis\u00e4ll\u00f6n! Korjataan t\u00e4m\u00e4 luomalla toinen mallimme teemaamme.<\/p>\n<h2>Yhden n\u00e4kym\u00e4n mallien luominen<\/h2>\n<p>Jos muistat aloittelijoille tarkoitetun WordPress-teeman opetusohjelman <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-1-introduction\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">1.<\/a> oppitunnilla, tarkastelimme mallihierarkiaa? Kun olemme yhdell\u00e4 viestill\u00e4 tai sivulla, WordPress etsii <code>single.php<\/code>viestej\u00e4 ja <code>page.php<\/code>sivuja. Jos jotakin n\u00e4ist\u00e4 ei l\u00f6ydy, WordPress palaa siihen, <code>singular.php<\/code>mik\u00e4 jaetaan viestityypist\u00e4 riippumatta. Teemat kuitenkin yleens\u00e4 toteutetaan <code>single.php<\/code>ja <code>page.php<\/code>johtuen viestien ja sivujen v\u00e4lisist\u00e4 eroista. Sivuilla ei ole luokkia ja tunnisteita, ja koska sivuja k\u00e4ytet\u00e4\u00e4n yleens\u00e4 staattiseen sis\u00e4lt\u00f6\u00f6n, niill\u00e4 ei yleens\u00e4 n\u00e4y julkaisup\u00e4iv\u00e4m\u00e4\u00e4r\u00e4\u00e4 tai kommentteja. T\u00e4m\u00e4 on kuitenkin t\u00e4ysin sinusta kiinni.<\/p>\n<p>Luomme <code>single.php<\/code>ja <code>page.php<\/code>teemme. Aloitetaan ensin viesteist\u00e4.<\/p>\n<h3>Yhden viestin malli<\/h3>\n<p>Tee teemakansiossasi kopio <code>index.php<\/code>ja nime\u00e4 se uudelleen muotoon <code>single.php<\/code>. <code>single.php<\/code>Poistamme pysyv\u00e4n linkin (joka linkitt\u00e4\u00e4 itseens\u00e4) ja vaihdamme otteen koko viestin sis\u00e4lt\u00f6\u00f6n. Ja lopuksi emme tarvitse arkiston navigointia t\u00e4\u00e4ll\u00e4.<\/p>\n<pre><code>&lt;?php get_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n    while (have_posts()): the_post();\n        &lt;article &lt;?php post_class(); ?&gt;&gt;\n            &lt;h2&gt;&lt;php the_title(); ?&gt;&lt;\/h2&gt;\n            &lt;?php the_content(); ?&gt;\n            &lt;?php the_category(); ?&gt;\n        &lt;\/article&gt;\n    endwhile;\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}\n?&gt;\n&lt;?php get_sidebar(); ?&gt;\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n<p>Lis\u00e4t\u00e4\u00e4n lis\u00e4\u00e4 hy\u00f6dyllisi\u00e4 tietoja; kuten julkaisun p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 ja kirjoittajan nimi. Suosittelen j\u00e4lleen lis\u00e4\u00e4m\u00e4\u00e4n HTML-tunnisteita, jotta saat paljon mukavamman HTML-rakenteen.<\/p>\n<pre><code>&lt;?php get_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n    while (have_posts()): the_post();\n        &lt;article &lt;?php post_class(); ?&gt;&gt;\n            &lt;h2&gt;&lt;php the_title(); ?&gt;&lt;\/h2&gt;\n            &lt;?php the_content(); ?&gt;\n            &lt;?php the_category(); ?&gt;\n            &lt;p&gt;Posted: &lt;?php the_date(); ?&gt; at &lt;?php the_time(); ?&gt;&lt;\/p&gt;\n            &lt;p&gt;Author: &lt;?php the_author(); ?&gt;&lt;\/p&gt;\n        &lt;\/article&gt;\n    endwhile;\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}\n?&gt;\n&lt;?php get_sidebar(); ?&gt;\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n<p>Toiminnot <code>the_time()<\/code>ja <code>the_date()<\/code>toistavat p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n ja kellonajan muodossa, jonka olet m\u00e4\u00e4ritt\u00e4nyt hallintapaneelissa &gt; Asetukset. Voit kuitenkin ohittaa t\u00e4m\u00e4n antamalla eri p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4muodon parametriksi n\u00e4ille menetelmille.<\/p>\n<p>Toiminto <code>the_author()<\/code>toistaa tekij\u00e4n &quot;n\u00e4ytt\u00f6nimen&quot;. Jos k\u00e4ytt\u00e4j\u00e4 ei ole antanut muuta nime\u00e4 profiilissaan, t\u00e4m\u00e4 toistaa k\u00e4ytt\u00e4j\u00e4nimen.<\/p>\n<p>Suosittelen <strong>vahvasti<\/strong>, ett\u00e4 et koskaan tulosta k\u00e4ytt\u00e4j\u00e4tunnuksia, koska se voi muodostaa turvallisuusuhan. Varmista aina, ett\u00e4 kirjoittajat ovat antaneet oikean nimen, tai \u00e4l\u00e4 k\u00e4yt\u00e4 <code>the_author()<\/code>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153917-61e5160aa02dd.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-153917-61e5160aa02dd.png\" alt=\"WordPress-teeman opetusohjelma aloittelijoille \u2013 Osa 5: Viestitietojen k\u00e4ytt\u00f6\" ><\/a><\/p>\n<p>T\u00e4lt\u00e4 yksi postaus n\u00e4ytt\u00e4\u00e4 minusta nyt. Mahtava! Tehd\u00e4\u00e4n yksisivuinen malli.<\/p>\n<h3>Yhden sivun malli<\/h3>\n<p>Tee kopio tiedostostasi <code>single.php<\/code>ja nime\u00e4 se uudelleen muotoon <code>page.php<\/code>. Tein <code>page.php<\/code>vain poistamisen kaiken, mik\u00e4 ei liittynyt sivuihin. Sivujen luokkien toistaminen ei toimi, ja poistin my\u00f6s p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n, kellonajan ja tekij\u00e4n. T\u00e4m\u00e4 on mit\u00e4 saamme sis\u00e4\u00e4n <code>page.php<\/code>:<\/p>\n<pre><code>&lt;?php get_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n    while (have_posts()): the_post();\n        &lt;article &lt;?php post_class(); ?&gt;&gt;\n            &lt;h2&gt;&lt;php the_title(); ?&gt;&lt;\/h2&gt;\n            &lt;?php the_content(); ?&gt;\n        &lt;\/article&gt;\n    endwhile;\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}\n?&gt;\n&lt;?php get_sidebar(); ?&gt;\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n<p>Alamme vihdoin p\u00e4\u00e4st\u00e4 jonnekin malliemme kanssa! En kuitenkaan voi toistaa t\u00e4t\u00e4 tarpeeksi; Kehotan sinua muokkaamaan malleja ja parametreja funktioiden mukaisiksi. Varsinkin lis\u00e4\u00e4m\u00e4ll\u00e4 lis\u00e4\u00e4 HTML-k\u00e4\u00e4reit\u00e4, jotta sen muotoilu on helpompi my\u00f6hemmin.<\/p>\n<p>Seuraavassa vaiheessa siirrymme hieman pois malleista ja siirrymme enemm\u00e4n WordPress-teemojen taustakoodaukseen.<\/p>\n<h2>Dokumentaatio k\u00e4ytetyist\u00e4 menetelmist\u00e4<\/h2>\n<ul>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/post_class\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">post_class<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_permalink\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">the_permalink<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_title\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">otsikko<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_excerpt\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ote_<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_category\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">the_category<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_content\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sis\u00e4lt\u00f6<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_date\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_time\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aika<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_author\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kirjailija<\/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 kaikkea siit\u00e4, kuinka voimme k\u00e4ytt\u00e4\u00e4 ja tulostaa tietoja jokaisesta viestist\u00e4 WordPress-silmukan sis\u00e4ll\u00e4 k\u00e4ytt\u00e4m\u00e4ll\u00e4 mallitageja.<\/p>\n","protected":false},"author":1,"featured_media":223885,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[927,895,895,1110,834,843,803,803,834,927,843,864,864],"tags":[1166],"class_list":{"0":"post-233333","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-aiheita","8":"category-koodi","10":"category-n-a","11":"category-opas-aloittelijoille","12":"category-opetusohjelmia","13":"category-php-5","18":"category-wordpress-5","20":"tag-affiai-fi"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233333","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=233333"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233333\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/223885"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=233333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=233333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=233333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}