{"id":230393,"date":"2022-12-10T11:55:00","date_gmt":"2022-12-10T08:55:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230393"},"modified":"2022-12-10T11:59:11","modified_gmt":"2022-12-10T08:59:11","slug":"wordpress-utveckling-gaa-runt-kod","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/wordpress-utveckling-gaa-runt-kod\/","title":{"rendered":"WordPress-utveckling: G\u00e5 runt kod"},"content":{"rendered":"\n<p>Om du har f\u00f6ljt med <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/the-independent-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">serien<\/a><\/strong> hittills, kommer du f\u00f6rmodligen att se hur anv\u00e4ndbar korrekt fels\u00f6kning kan vara, s\u00e4rskilt n\u00e4r du arbetar med WordPress.<\/p>\n<p>Det vill s\u00e4ga att du inte bara kan f\u00e5 v\u00e4rdefulla insikter i dina egna projekt, utan du kan ocks\u00e5 se hur WordPress Core fungerar.<\/p>\n<p>Vid det h\u00e4r laget har vi dock inte gjort s\u00e5 mycket. Som du kanske minns fr\u00e5n <strong><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/en-introduktion-till-felsoekning\/\" title=\"f\u00f6rra inl\u00e4gget\">f\u00f6rra inl\u00e4gget<\/a><\/strong> (eller om du inte har sett sk\u00e4rms\u00e4ndningen \u00e4r det nu ett bra tillf\u00e4lle att g\u00f6ra det), kan du se hur mycket fels\u00f6kning erbjuder.<\/p>\n<p>Sanningen \u00e4r att vi knappt har skrapat p\u00e5 ytan. Som jag n\u00e4mnde f\u00f6rra g\u00e5ngen kommer det h\u00e4r inl\u00e4gget och denna screencast att fokusera specifikt p\u00e5 f\u00f6ljande:<\/p>\n<blockquote>\n<p>I n\u00e4sta inl\u00e4gg ska vi titta p\u00e5 mer avancerade saker vi kan g\u00f6ra som att kliva in i funktioner, kliva ur funktioner och kliva \u00f6ver funktioner.<\/p>\n<\/blockquote>\n<p>Vi \u00e4r fortfarande inte vid en punkt d\u00e4r vi kommer att oroa oss f\u00f6r att \u00e4ndra variabelv\u00e4rden i farten, men vi kommer definitivt att se hur vi strategiskt kan anv\u00e4nda fels\u00f6karen f\u00f6r att g\u00e5 in i vissa funktioner, g\u00e5 \u00f6ver vissa funktioner, och l\u00e4mna vissa funktioner.<\/p>\n<h2>G\u00e5 runt kod<\/h2>\n<p>Innan jag delar screencasten vill jag definiera vad det inneb\u00e4r att g\u00e5 runt koden i ett projekt. Det l\u00e5ter som n\u00e5got vi g\u00f6r n\u00e4r vi navigerar i kodbasen.<\/p>\n<p>Men det \u00e4r inte sant i samband med fels\u00f6kning.<\/p>\n<\/p>\n<p>Kom ih\u00e5g att f\u00f6r den h\u00e4r serien anv\u00e4nder jag den senaste versionen av WordPress fr\u00e5n Subversion. Du kan se hur du st\u00e4ller in detta genom att l\u00e4sa <strong><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/utveckla-plugins-och-teman-mot-wordpress-trunk\/\" title=\"det h\u00e4r inl\u00e4gget\">det h\u00e4r inl\u00e4gget<\/a><\/strong>.<\/p>\n<h3>Ett ord om steg<\/h3>\n<p>Innan du definierar de kommande termerna, v\u00e4nligen notera att id\u00e9n med ett &quot;steg&quot; vid fels\u00f6kning \u00e4r analog med att g\u00e5 rad f\u00f6r rad genom kodbasen.<\/p>\n<p>Som vi s\u00e5g i f\u00f6rra inl\u00e4gget kommer programmets k\u00f6rning att stanna s\u00e5 snart en brytpunkt tr\u00e4ffas. D\u00e4rifr\u00e5n l\u00e4mnas resultatet av hur programmet fortskrider upp till oss. Och med det som bakgrund kommer vi att definiera n\u00e5gra termer.<\/p>\n<ul>\n<li><strong>Att kliva in i en funktion<\/strong> \u00e4r en \u00e5tg\u00e4rd som, n\u00e4r du trycker p\u00e5 ett funktionsanrop, tar dig in i funktionen. Ibland \u00e4r detta anv\u00e4ndbart, som om du vill se vad funktionen g\u00f6r eller se hur v\u00e4rden st\u00e4lls in; andra g\u00e5nger \u00e4r det on\u00f6digt om du bara bryr dig om att funktionen k\u00f6rs eller om du bara bryr dig om vad den returnerar.<\/li>\n<li><strong>Om du kliver \u00f6ver ett funktionsanrop<\/strong> kan du kringg\u00e5 en funktions exekvering i den meningen att den fortfarande k\u00f6rs, vi ser bara inte hur den faktiskt fungerar. Ist\u00e4llet kommer kontroll att g\u00e5 till n\u00e4sta rad efter att funktionen har avslutat sin exekvering.<\/li>\n<li><strong>Att g\u00e5 ut ur en funktion<\/strong> anv\u00e4nds n\u00e4r du har klivit in i en funktion, tr\u00e4ffat en punkt d\u00e4r du \u00e4r klar med att utv\u00e4rdera koden och sedan redo att g\u00e5 tillbaka till vad kodbasen ska g\u00f6ra h\u00e4rn\u00e4st. Detta \u00e4r anv\u00e4ndbart om du vill hitta var en bugg kan ligga och misst\u00e4nker att den finns i en del av koden (var den kan vara eller inte).<\/li>\n<\/ul>\n<p>Och det \u00e4r allt. Om det h\u00e4r \u00e4r helt nytt kan det l\u00e5ta konstigt eller s\u00e5 kan det vara sv\u00e5rt att linda huvudet runt det. Om s\u00e5 \u00e4r fallet \u00e4r det okej. Det \u00e4r s\u00e5 det g\u00e5r med allt nytt, eller hur?<\/p>\n<p>\u00c5 andra sidan, om du r\u00e5kar k\u00e4nna till dessa termer eller l\u00e4tt f\u00f6rst\u00e5r definitionerna av dem, betrakta d\u00e5 de f\u00f6reg\u00e5ende punkterna som en uppfriskning.<\/p>\n<h3>Och nu en screencast<\/h3>\n<p>I denna screencast kommer jag att utf\u00f6ra alla ovanst\u00e5ende \u00e5tg\u00e4rder med hj\u00e4lp av ett av mina egna plugins \u2013 <strong><a href=\"https:\/\/wordpress.org\/plugins\/easier-excerpts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Enklare utdrag<\/a><\/strong>. Detta \u00e4r dock inte meningen att vara n\u00e5gon typ av sj\u00e4lvreklam. Ist\u00e4llet kan jag kodbasen och jag beh\u00f6ver inte oroa mig f\u00f6r att faktiskt visa upp det arbete som g\u00f6rs f\u00f6r n\u00e5gon annan.<\/p>\n<div class=\"sds-iframe-wrapper fitvidsignore\" style=\"position:relative;padding-top:56.25%;max-width:100%;\"><iframe allowfullscreen style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" src=\"\/\/www.youtube.com\/embed\/DZFBcEzEIVw\" frameborder=\"0\"><\/iframe><\/div>\n<p>Nu n\u00e4r du har sett screencasten och vet att det strikt \u00e4r min kodbas, kan du <strong><a href=\"https:\/\/wordpress.org\/plugins\/easier-excerpts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ladda ner koden<\/a><\/strong> och utf\u00f6ra alla samma \u00e5tg\u00e4rder sj\u00e4lv f\u00f6r att f\u00e5 ett grepp om hur du utf\u00f6r \u00e5tg\u00e4rderna som beskrivs i det h\u00e4r inl\u00e4gget.<\/p>\n<p>Detta kommer att ge dig \u00e4nnu mer \u00f6vning f\u00f6r dina fels\u00f6kningsf\u00e4rdigheter och b\u00f6r g\u00f6ra det enkelt att forts\u00e4tta att f\u00f6rb\u00e4ttra v\u00e5ra fels\u00f6kningsf\u00e4rdigheter n\u00e4r vi g\u00e5r vidare i n\u00e4sta inl\u00e4gg.<\/p>\n<h2>Strax<\/h2>\n<p>Det h\u00e4r \u00e4r ett lite l\u00e5ngt inl\u00e4gg och jag f\u00f6rs\u00f6kte se till att alla f\u00f6rklaringar gjordes innan jag s\u00e5g screencasten. Det \u00e4r trots allt mycket l\u00e4ttare att l\u00e4sa textstycken om inneh\u00e5ll och sedan se det spelas upp i en kort video snarare \u00e4n att ha en 15-minuters video, eller hur?<\/p>\n<p>Hur anv\u00e4ndbart det \u00e4n kan vara, det finns fortfarande mer i det. Och det \u00e4r vad vi kommer att granska i n\u00e4sta inl\u00e4gg. Specifikt kommer vi att titta p\u00e5 hur man inspekterar variabelv\u00e4rden, granskar vad en array inneh\u00e5ller och sedan hur vi kan modifiera variabler i farten.<\/p>\n<p>Det \u00e4r kraftfulla grejer, men se till att du har granskat <strong><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/en-introduktion-till-felsoekning\/\" title=\"den f\u00f6rsta biten av inneh\u00e5llet\">den f\u00f6rsta biten av inneh\u00e5llet<\/a><\/strong>, noggrant granskat det h\u00e4r inl\u00e4gget och \u00f6va lite innan du g\u00e5r vidare.<\/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>Innan jag delar screencasten vill jag definiera vad det inneb\u00e4r att g\u00e5 runt kod i ett projekt. D\u00e5 ska jag visa dig hur.<\/p>\n","protected":false},"author":1,"featured_media":236179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[848,901,724],"tags":[1173],"class_list":["post-230393","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-koda","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230393","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=230393"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230393\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/236179"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=230393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=230393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=230393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}