{"id":230633,"date":"2022-12-01T10:31:00","date_gmt":"2022-12-01T07:31:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230633"},"modified":"2022-11-09T23:17:45","modified_gmt":"2022-11-09T20:17:45","slug":"vartaloluokan-lisaeaeminen-mallin-perusteella","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/vartaloluokan-lisaeaeminen-mallin-perusteella\/","title":{"rendered":"Vartaloluokan lis\u00e4\u00e4minen mallin perusteella"},"content":{"rendered":"\n<p>Mallien k\u00e4ytt\u00e4minen WordPressiss\u00e4 ei ole harvinaista. Kaikki on er\u00e4\u00e4nlaista mallia \u2013 p\u00e4\u00e4sivun mallista, yhden sivun mallista, 404-mallipohjasta \u2013 aina mukautettuihin malleihin.<\/p>\n<p>Joskus saatat kuitenkin haluta soveltaa <code>body<\/code>elementtiin luokkaa k\u00e4ytetyn mallin perusteella, jotta voit muotoilla t\u00e4m\u00e4n mallin hieman eri tavalla kuin muualla sivustossa.<\/p>\n<p>Vaikka voit tehd\u00e4 sen useilla eri tavoilla, meill\u00e4 kaikilla on omat menetelm\u00e4mme, joten ajattelin jakaa omani.<\/p>\n<h2>Vartaloluokka mallin perusteella<\/h2>\n<p>Ennen kuin ryhdyt k\u00e4ytt\u00e4m\u00e4\u00e4n koodia, jolla lis\u00e4t\u00e4\u00e4n mallipohjaan perustuva body-luokka, on t\u00e4rke\u00e4\u00e4 huomata, ett\u00e4 oletan, ett\u00e4 malli on nimetty seuraavassa muodossa: <code>template-{name-of-template}.php<\/code>.<\/p>\n<p>Oletetaan siis, ett\u00e4 ty\u00f6skentelet mallin parissa, joka n\u00e4ytt\u00e4\u00e4 tiedot kuukaudessa laihduttamasi painosta, ja haluat tehd\u00e4 sen k\u00e4ytt\u00e4m\u00e4ll\u00e4 t\u00e4t\u00e4 mallia. Malli voi olla nimetty <code>template-weight-loss.php<\/code>.<\/p>\n<p>Asia on t\u00e4ss\u00e4: Luokan nimen k\u00e4ytt\u00e4minen yhdelle sivulle, joka k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 mallia, ei ole iso juttu. Mutta jos sinulla on useita sivuja, jotka k\u00e4ytt\u00e4v\u00e4t t\u00e4t\u00e4 mallia (jos k\u00e4yt\u00e4t sivustoa, jossa monet ihmiset saattavat k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 mallia, se on j\u00e4rkev\u00e4\u00e4, eik\u00f6?), sinun kannattaa varmistaa, ett\u00e4 k\u00e4yt\u00e4t luokan nime\u00e4 jokaiselle sivulle, joka on t\u00e4m\u00e4 malli.<\/p>\n<p>Mutta miten?<\/p>\n<p>Voit tehd\u00e4 t\u00e4m\u00e4n useilla tavoilla, mutta se vaatii ainakin seuraavat:<\/p>\n<ol>\n<li><strong><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/body_class\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Kiinnitys body_class-<\/a><\/strong> koukkuun WordPress tarjoaa,<\/li>\n<li>Kun luet mallin nimen,<\/li>\n<li>Sen k\u00e4ytt\u00e4minen rungon luokan nimeen (jos sivu k\u00e4ytt\u00e4\u00e4 mallia)<\/li>\n<\/ol>\n<p>Onneksi se on helppo tehd\u00e4, koska koukku v\u00e4litt\u00e4\u00e4 joukon luokkia koukussa olevaan funktioon ja tietyn viestin metatiedot sis\u00e4lt\u00e4v\u00e4t sen, k\u00e4ytet\u00e4\u00e4nk\u00f6 se mallia vai ei.<\/p>\n<p>N\u00e4in sanottuna <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/e053ff5fdc82af9854bf7031d57a759d#file-00-add-body-class-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4m\u00e4 voidaan saavuttaa:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\nadd_filter('body_class', 'acme_add_body_class');\n\/**\n * If the current page has a template, apply it's name to the list of classes. This is\n * necessary if there are multiple pages with the same template and you want to apply the\n * name of the template to the class of the body.\n *\n * @param array $classes The current array of attributes to be applied to the \n *\/\nfunction acme_add_body_class($classes)\n{\n  if (!empty(get_post_meta(get_the_ID(), '_wp_page_template', true))) {\n      \/\/ Remove the `template-` prefix and get the name of the template without the file extension.\n      $templateName = basename(get_page_template_slug(get_the_ID()));\n      $templateName = str_ireplace('template-', '', basename(get_page_template_slug(get_the_ID()), '.php'));\n\n      $classes[] = $templateName;\n  }\n\n  return array_filter($classes);\n}\n<\/code><\/pre>\n<p>Huomaa, ett\u00e4 voit k\u00e4ytt\u00e4\u00e4 t\u00e4h\u00e4n sulkemista mieluummin kuin funktion nime\u00e4 koukussa ja itsen\u00e4isen funktion, mutta koska eri ihmiset, jotka lukevat t\u00e4t\u00e4, k\u00e4ytt\u00e4v\u00e4t eri PHP-versioita, helpoin tapa osoittaa t\u00e4m\u00e4 on k\u00e4ytt\u00e4\u00e4 sit\u00e4 yll\u00e4.<\/p>\n<h2>Miksi tehd\u00e4 n\u00e4in?<\/h2>\n<p>Yleisesti ottaen, jos sivullasi on sama nimi kuin mallilla, jota k\u00e4ytet\u00e4\u00e4n, sill\u00e4 on sivun nime\u00e4 vastaava luokan nimi.<\/p>\n<p>Oletetaan, ett\u00e4 sinulla on yksi sivu ja sen nimi on Painonpudotus. Elementill\u00e4 <code>body<\/code>on <code>weight loss<\/code>luokka. Mutta jos k\u00e4yt\u00e4t toista, kolmatta, nelj\u00e4tt\u00e4 tai vastaavaa sivulla, jolla on eri otsikko, sill\u00e4 ei ole kyseist\u00e4 luokkaa.<\/p>\n<p>Jos haluat varmistaa, <code>body<\/code>ett\u00e4 luokan nimi perustuu malliin, yll\u00e4 oleva koodi varmistaa, ett\u00e4 t\u00e4m\u00e4 toimii.<\/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>Helppo tapa soveltaa mallin nimeen perustuvaa runkoluokkaa WordPress-sovellusliittymien ja PHP-toimintojen avulla.<\/p>\n","protected":false},"author":1,"featured_media":163533,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,917,843,803,864],"tags":[1166],"class_list":["post-230633","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-muut","category-opetusohjelmia","category-php-5","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230633","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=230633"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230633\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/163533"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=230633"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=230633"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=230633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}