{"id":230944,"date":"2022-12-23T19:26:00","date_gmt":"2022-12-23T16:26:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230944"},"modified":"2022-12-07T10:55:05","modified_gmt":"2022-12-07T07:55:05","slug":"designmoenster-foer-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/designmoenster-foer-wordpress\/","title":{"rendered":"Designm\u00f6nster f\u00f6r WordPress"},"content":{"rendered":"\n<p>Ju l\u00e4ngre du arbetar med en given plattform, desto mer b\u00f6rjar du k\u00e4nna igen vissa s\u00e4tt att g\u00f6ra n\u00e5got p\u00e5. Och det \u00e4r mycket troligt att du kommer att b\u00f6rja inse tv\u00e5 saker som dessa saker kan g\u00f6ras:<\/p>\n<ul>\n<li>p\u00e5 ett s\u00e4tt som \u00e4r snabbt att utveckla, men sv\u00e5rare att underh\u00e5lla eller<\/li>\n<li>p\u00e5 ett s\u00e4tt som \u00e4r l\u00e5ngsammare att utveckla, men l\u00e4ttare att underh\u00e5lla.<\/li>\n<\/ul>\n<p>Naturligtvis, precis som alla projekt, kommer krav, begr\u00e4nsningar, budgetar och tid alla att p\u00e5verka vad du kan implementera. Men vad jag menar \u00e4r att oavsett hur man implementerar en l\u00f6sning s\u00e5 b\u00f6rjar man bli bekant med hur man l\u00f6ser ett givet problem.<\/p>\n<p>Om ett problem m\u00e5ste l\u00f6sas snabbt, d\u00e5 vet du kompromisserna, men du vet f\u00f6rmodligen hur du g\u00f6r det snabbt. P\u00e5 samma s\u00e4tt, om du har lite mer tid (och budget), kan du utveckla det p\u00e5 ett annat s\u00e4tt, och du kommer att veta hur du g\u00f6r det och kanske till och med avsluta det med testsviter om begr\u00e4nsningarna till\u00e5ter det.<\/p>\n<p>Oavsett hur du m\u00e5ste implementera en l\u00f6sning vet du hur du kan g\u00f6ra det.<\/p>\n<p>Och detta v\u00e4cker en fr\u00e5ga:<\/p>\n<p>Finns det designm\u00f6nster som \u00e4r specifika f\u00f6r en given plattform? Och i s\u00e5 fall, vilka \u00e4r n\u00e5gra av designm\u00f6nster som kan vara tillg\u00e4ngliga i WordPress?<\/p>\n<h2>Designm\u00f6nster f\u00f6r WordPress<\/h2>\n<p>Naturligtvis pratar jag inte om designm\u00f6nster som <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns_(book)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gang of Four<\/a> utvecklade f\u00f6r s\u00e5 m\u00e5nga decennier sedan. Ist\u00e4llet pratar jag om s\u00e4tt att g\u00f6ra vissa saker i WordPress.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b0325077.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-160471-61e70b0325077.png\" alt=\"Designm\u00f6nster f\u00f6r WordPress\" ><\/a><\/p>\n<p>Till exempel:<\/p>\n<ul>\n<li>korrekt sanera information innan du skriver den till databasen (f\u00f6r inl\u00e4gg, taxonomier, metadata och s\u00e5 vidare),<\/li>\n<li>l\u00e4sa data fr\u00e5n databasen med hj\u00e4lp av WordPress-databasverktyget (eller <a href=\"https:\/\/codex.wordpress.org\/Class_Reference\/wpdb\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$wpdb<\/a> ),<\/li>\n<li>validera och returnera information fr\u00e5n databasen n\u00e4r s\u00e5 beg\u00e4rs,<\/li>\n<li>verifiera s\u00e4kerheten f\u00f6r en Ajax-f\u00f6rfr\u00e5gan innan du utf\u00f6r n\u00e5got arbete,<\/li>\n<li>att korrekt st\u00e4lla in en anpassad fr\u00e5ga och sedan \u00e5terst\u00e4lla den s\u00e5 att den inte st\u00f6r huvudslingan,<\/li>\n<li>l\u00e4gga till sidspecifika tillg\u00e5ngar i b\u00e5de det administrativa omr\u00e5det f\u00f6r WordPress och den offentliga webbplatsen f\u00f6r WordPress,<\/li>\n<li>och s\u00e5 vidare.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b06ec937.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-160471-61e70b06ec937.png\" alt=\"Designm\u00f6nster f\u00f6r WordPress\" ><\/a><\/p>\n<p>Det finns massor av saker som vi skulle kunna lista h\u00e4r. Men jag tycker att det \u00e4r v\u00e4rt att unders\u00f6ka hur n\u00e5gra av dessa kan se ut.<\/p>\n<p>Men f\u00f6rst, vad \u00e4r <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">designm\u00f6nster<\/a> i klassisk mening?<\/p>\n<blockquote>\n<p>Ett designm\u00f6nster \u00e4r den \u00e5teranv\u00e4ndbara formen av en l\u00f6sning p\u00e5 ett designproblem. Id\u00e9n introducerades av arkitekten Christopher Alexander och har anpassats f\u00f6r olika andra discipliner, framf\u00f6r allt datavetenskap.<\/p>\n<\/blockquote>\n<p>Jag har arbetat i WordPress tillr\u00e4ckligt l\u00e4nge och byggt tillr\u00e4ckligt m\u00e5nga plugins och verktyg med applikationen f\u00f6r att k\u00e4nna igen hur man g\u00f6r vissa saker j\u00e4mf\u00f6rt med att komma p\u00e5 n\u00e5got original f\u00f6r varje enskilt projekt.<\/p>\n<p>\u00c4r det d\u00e5 s\u00e4kert att s\u00e4ga att det finns \u00e5teranv\u00e4ndbara saker vi kan anv\u00e4nda i WordPress f\u00f6r vanliga problem? S\u00e4ker. De m\u00e5ste naturligtvis generaliseras.<\/p>\n<p>S\u00e5 jag ska ta en medelv\u00e4g p\u00e5 detta \u00e5tminstone f\u00f6r bloggandets skull. Jag ska starta en serie som kommer att prata igenom ovanst\u00e5ende \u00e4mnen tillsammans med kodexempel.<\/p>\n<p>De kommer att bli korta artiklar, och jag ska g\u00f6ra vad jag kan f\u00f6r att se till att det \u00e4r l\u00e4tt att f\u00f6lja (med kodkommentarer och f\u00f6rklaringar) och vem vet, kanske kommer detta att v\u00e4xa till n\u00e5got mer.<\/p>\n<h2>Jag pratar inte om bibliotek<\/h2>\n<p>Detta ska inte f\u00f6rv\u00e4xlas med <a href=\"https:\/\/en.wikipedia.org\/wiki\/Library_(computing)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bibliotek<\/a>. Kom ih\u00e5g att bibliotek \u00e4r som sm\u00e5 programvaror som vi kanske kan k\u00f6ra oberoende av varandra, eller s\u00e5 kan de vara en upps\u00e4ttning verktyg eller funktioner som kan importeras till ditt projekt f\u00f6r att l\u00e4gga till funktionalitet.<\/p>\n<blockquote>\n<p>Inom datavetenskap \u00e4r ett bibliotek en samling icke-flyktiga resurser som anv\u00e4nds av datorprogram, ofta f\u00f6r mjukvaruutveckling. Dessa kan inkludera konfigurationsdata, dokumentation, hj\u00e4lpdata, meddelandemallar, f\u00f6rskriven kod och subrutiner, klasser, v\u00e4rden eller typspecifikationer.<\/p>\n<\/blockquote>\n<p>Kanske kan vissa WordPress-specifika m\u00f6nster byggas in i deras bibliotek, men det \u00e4r inte meningen med inl\u00e4gget.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b0a9a64d.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-160471-61e70b0a9a64d.png\" alt=\"Designm\u00f6nster f\u00f6r WordPress\" ><\/a><\/p>\n<p>Ist\u00e4llet f\u00f6rs\u00f6ker jag helt enkelt l\u00e4gga ut potentiella, vanliga m\u00f6nster som finns i WordPress.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kanske finns det vissa designm\u00f6nster f\u00f6r WordPress. I det h\u00e4r inl\u00e4gget och en kommande serie kanske det \u00e4r v\u00e4rt att utforska dem.<\/p>\n","protected":false},"author":1,"featured_media":236332,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[848,901,724,868],"tags":[1173],"class_list":["post-230944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-koda","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=230944"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230944\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/236332"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=230944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=230944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=230944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}