{"id":233815,"date":"2023-02-23T10:07:00","date_gmt":"2023-02-23T07:07:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233815"},"modified":"2022-11-11T12:35:31","modified_gmt":"2022-11-11T09:35:31","slug":"wordpress-temahandledning-foer-nyboerjare-del-9-menyer-och-widgetomraaden","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/wordpress-temahandledning-foer-nyboerjare-del-9-menyer-och-widgetomraaden\/","title":{"rendered":"WordPress-temahandledning f\u00f6r nyb\u00f6rjare \u2013 Del 9: Menyer och widgetomr\u00e5den"},"content":{"rendered":"\n<p>Den h\u00e4r lektionen tar upp hur du l\u00e4gger till tv\u00e5 grundl\u00e4ggande WordPress-funktioner till v\u00e5rt tema; menyer och widgetomr\u00e5den. Vi l\u00e4r oss hur man registrerar en plats f\u00f6r en webbplatsens huvudnavigeringsmeny och matar ut menyn i v\u00e5ra mallar, samt till\u00e5ter att l\u00e4gga till widgets i v\u00e5rt sidof\u00e4lt och sidfotsomr\u00e5de.<\/p>\n<p>De som \u00e4r intresserade av er kanske har m\u00e4rkt att varken &quot;menyer&quot; eller &quot;widgetar&quot; \u00e4r tillg\u00e4ngliga fr\u00e5n &quot;Utseende&quot;-menyn i adminpanelen. Detta beror p\u00e5 att v\u00e5rt tema inte st\u00f6der dessa \u00e4nnu. Vi kommer att fixa det i den h\u00e4r lektionen &#8211; med b\u00f6rjan i menyer .<\/p>\n<h2>WordPress menyer<\/h2>\n<p>Det finns tv\u00e5 delar i att l\u00e4gga till menyer i ditt tema. F\u00f6rst m\u00e5ste du definiera en eller flera menyplatser i din <code>functions.php<\/code>. Ett exempel \u00e4r en huvudmeny som kommer att finnas i rubriken p\u00e5 alla sidor. Den andra delen \u00e4r att l\u00e4gga till lite kod p\u00e5 den plats d\u00e4r du vill att menyn ska matas ut. Till exempel <code>header.php<\/code>p\u00e5 den plats du vill placera huvudmenyn.<\/p>\n<h3>Registrera en menyplats<\/h3>\n<p>I den h\u00e4r handledningen kommer vi att l\u00e4gga till en menyplats f\u00f6r webbplatsens huvudnavigering och placera dess utdata i v\u00e5r <code>header.php<\/code>. L\u00e5t oss b\u00f6rja med att registrera platsen i <code>functions.php<\/code>, vilket g\u00f6rs genom att anv\u00e4nda funktionen <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_nav_menu<\/a> :<\/p>\n<pre><code>add_action('init', 'wptutorial_register_menu');\nfunction wptutorial_register_menu() {\n    register_nav_menu('main-nav', __('Main Navigation', 'wptutorial'));\n}<\/code><\/pre>\n<p>Vi m\u00e5ste haka p\u00e5 kroken <code>init<\/code>, vilket WordPress har best\u00e4mt \u00e4r en bra &quot;kontrollpunkt&quot; f\u00f6r att registrera menyplatser. Inuti v\u00e5r funktion anropar vi <code>register_nav_menu()<\/code>som accepterar ett minimum av tv\u00e5 parametrar; menyhandtaget som \u00e4r en unik slug som du kommer att anv\u00e4nda som en identifierare n\u00e4r du renderar menyn, och det synliga namnet p\u00e5 menyn som visas i adminpanelen. Observera att jag lindade in namnet <code>__()<\/code>f\u00f6r att g\u00f6ra det \u00f6vers\u00e4ttbart, som vi l\u00e4rde oss i <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\">f\u00f6reg\u00e5ende steg<\/a>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0df88967.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-151855-61e4d0df88967.png\" alt=\"WordPress-temahandledning f\u00f6r nyb\u00f6rjare \u2013 Del 9: Menyer och widgetomr\u00e5den\" ><\/a><\/p>\n<p>Om du uppdaterar din adminpanel b\u00f6r du nu se en ny undermeny under &quot;Utseende&quot;; &quot;Menyer&quot;. Grattis, ditt tema st\u00f6der nu skapande av menyer!<\/p>\n<p>Om du inte \u00e4r bekant med att g\u00f6ra och administrera menyer i WordPress \u00e4r <a href=\"https:\/\/wordpress.org\/support\/article\/appearance-menus-screen\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">det h\u00e4r en bra guide<\/a> f\u00f6r dig.<\/p>\n<p>Skapa en ny meny i &quot;Utseende &gt; Menyer&quot; \u2013 den kan inneh\u00e5lla vad du vill, jag har precis lagt till dummy-inl\u00e4ggen jag hade skapat i min WordPress.<\/p>\n<p>N\u00e4r du har sparat din f\u00f6rsta meny kommer ett nytt avsnitt som heter &quot;Menyinst\u00e4llningar&quot; att dyka upp under ditt menyredigeringsomr\u00e5de, som l\u00e5ter dig v\u00e4lja en plats f\u00f6r den h\u00e4r menyn. Det b\u00f6r lista en tillg\u00e4nglig plats, vilket \u00e4r den vi gjorde; &quot;Huvudnavigering&quot;.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e03b2f8.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-151855-61e4d0e03b2f8.png\" alt=\"WordPress-temahandledning f\u00f6r nyb\u00f6rjare \u2013 Del 9: Menyer och widgetomr\u00e5den\" ><\/a><\/p>\n<p>Placera en bock i &quot;Huvudnavigering&quot; och tryck p\u00e5 Spara. Nu \u00e4r din nyskapade meny kopplad till platsen och kommer att visas automatiskt var du \u00e4n l\u00e4gger till koden f\u00f6r att mata ut denna menyplats. L\u00e5t oss g\u00f6ra det nu.<\/p>\n<h3>Mata ut en menyplats i en mall<\/h3>\n<p>\u00d6ppna upp <code>header.php<\/code>och var du \u00e4n vill att menyutg\u00e5ngen ska vara, l\u00e4gg till ett samtal till <code>wp_nav_menu()<\/code>. Den h\u00e4r funktionen accepterar en hel massa argument i en array f\u00f6r att verkligen anpassa menyutg\u00e5ngen. Viktigast av allt beh\u00f6ver vi parametern som s\u00e4ger att den ska h\u00e4mta platsen f\u00f6r &quot;Huvudnavigering&quot;. F\u00f6r att g\u00f6ra det l\u00e4gger vi till argumentet &#8217; <code>theme_location<\/code>&#8217; och st\u00e4ller in det i handtaget p\u00e5 v\u00e5r meny; &#8217; <code>main-nav<\/code>&#8217;.<\/p>\n<p>Jag lade till menyutg\u00e5ngen direkt efter start av <code>&lt;body&gt;<\/code>taggen, men om du har kompletterat dina mallar med HTML, best\u00e4m sj\u00e4lv var du vill att menyn ska visas.<\/p>\n<pre><code>...\n&lt;body &lt;?php body_class(); ?&gt;&gt;\n    &lt;nav class=\"main-nav\"&gt;&lt;?php wp_nav_menu(['theme_location' =&gt; 'main-nav']); ?&gt;&lt;\/nav&gt;<\/code><\/pre>\n<p>Uppdatera din frontend och du b\u00f6r se menyn du skapade i admin som en oordnad lista i b\u00f6rjan av mallen.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e11c102.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-151855-61e4d0e11c102.png\" alt=\"WordPress-temahandledning f\u00f6r nyb\u00f6rjare \u2013 Del 9: Menyer och widgetomr\u00e5den\" ><\/a><\/p>\n<p>Som vanligt uppmuntrar jag dig att gr\u00e4va lite djupare i parametrarna f\u00f6r att <code>wp_nav_menu<\/code>i <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress Codex-dokumentation f\u00f6r det<\/a> och leka med hur du vill att utdata ska vara. Till exempel: du kan g\u00f6ra att det inte matas ut i en HTML-lista, du kan begr\u00e4nsa menyalternativen till endast vissa niv\u00e5er (f\u00f6r att f\u00f6rhindra undermenyer) och mer.<\/p>\n<p>Om du \u00e4r nyfiken p\u00e5 stylingdelen; ta en titt p\u00e5 klasserna WordPress l\u00e4gger till automatiskt i varje menyalternativ. Du kommer enkelt att kunna l\u00e4gga till stilar f\u00f6r aktivt menyobjekt, objekt som har underordnade objekt, \u00f6verordnat objekt f\u00f6r ett aktivt underordnat objekt, etc.<\/p>\n<p>Obs: Alla temaanv\u00e4ndare kan alltid skapa flera menyer och v\u00e4lja att visa dessa utanf\u00f6r ett temas registrerade platser med hj\u00e4lp av widgets. Men f\u00f6r att g\u00f6ra detta m\u00e5ste ditt tema definiera n\u00e5gra widgetomr\u00e5den! L\u00e5t oss g\u00f6ra det h\u00e4rn\u00e4st.<\/p>\n<h2>Widgetomr\u00e5den<\/h2>\n<p>Widgetomr\u00e5den fungerar ganska lika i hur menyer fungerar. Du registrerar en plats (f\u00f6r widgetar definierar du ett omr\u00e5de d\u00e4r temaanv\u00e4ndaren kan placera widgets i), och var du \u00e4n vill att platsen\/omr\u00e5det ska visas i dina mallar l\u00e4gger du till lite kod som h\u00e4nvisar till handtags-id:t du angav i din registreringskod.<\/p>\n<p>L\u00e5t oss definiera ett widgetomr\u00e5de i v\u00e5rt sidof\u00e4lt och ett i sidfoten. Det \u00e4r vanligt att teman tillhandah\u00e5ller flera widgetomr\u00e5den i sidfoten f\u00f6r att dela upp dem snyggt i kolumner, men i den h\u00e4r handledningen l\u00e4gger vi bara till en i sidfoten.<\/p>\n<p>Widgetomr\u00e5den h\u00e4nvisas till som &quot;sidof\u00e4lt&quot; i WordPress-kod, men det \u00e4r inte enbart f\u00f6r det gamla h\u00f6gra sidof\u00e4ltet p\u00e5 webbplatser. Det verkar som att ett gammalt namn bara har fastnat fr\u00e5n en tid d\u00e5 webbplatser vanligtvis bara hade ett widgetomr\u00e5de i sidof\u00e4ltet. Tro inte att &quot;sidof\u00e4lt&quot; bara kan referera till faktiska sidof\u00e4lt.<\/p>\n<h3>Registrera widgetomr\u00e5den<\/h3>\n<p>Vi b\u00f6rjar med att registrera tv\u00e5 widgetomr\u00e5den i v\u00e5r <code>functions.php<\/code>. Vi anv\u00e4nder funktionen <code>register_sidebar<\/code>f\u00f6r att registrera v\u00e5ra sidof\u00e4lt, anslutna till <code>widgets_init<\/code>kroken, som WordPress har definierat som den b\u00e4sta kroken f\u00f6r att registrera widgetomr\u00e5den (och anpassade widgets).<\/p>\n<pre><code>add_action('widgets_init', 'wptutorial_register_sidebar');\nfunction wptutorial_register_sidebar() {\n    register_sidebar([\n        'name' =&gt; __('Sidebar Widget Area', 'wptutorial'),\n        'id' =&gt; 'sidebar-area'\n    ]);\n    register_sidebar([\n        'name' =&gt; __('Footer Widget Area', 'wptutorial'),\n        'id' =&gt; 'footer-area'\n    ]);\n}<\/code><\/pre>\n<p>Funktionen <code>register_sidebar()<\/code>accepterar en hel del argument, som minimum beh\u00f6ver du argumenten &#8217;id&#8217; och &#8217;name&#8217;. Det finns parametrar tillg\u00e4ngliga f\u00f6r att definiera hur du vill att widgetens HTML-omslag ska matas ut.<\/p>\n<p>Uppdatera din adminpanel och du b\u00f6r nu se menyalternativet &quot;Widgets&quot; visas under &quot;Utseende&quot;. I &quot;Widgets&quot; adminpanel kan du se tv\u00e5 tillg\u00e4ngliga widgetomr\u00e5den i det h\u00f6gra omr\u00e5det; som \u00e4r v\u00e5rt &quot;Sidef\u00e4ltswidgetomr\u00e5de&quot; och &quot;Sidfotswidgetomr\u00e5de&quot;.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e22862e.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-151855-61e4d0e22862e.png\" alt=\"WordPress-temahandledning f\u00f6r nyb\u00f6rjare \u2013 Del 9: Menyer och widgetomr\u00e5den\" ><\/a><\/p>\n<p>Placera en slumpm\u00e4ssig widget i v\u00e5rt sidof\u00e4lt eller sidfotswidgetomr\u00e5de, bara s\u00e5 att du kan se den i aktion.<\/p>\n<h3>Mata ut ett widgetomr\u00e5de i en mall<\/h3>\n<p>Den sista delen \u00e4r att mata ut widgetomr\u00e5dena till v\u00e5ra mallar. F\u00f6r att g\u00f6ra detta anv\u00e4nder vi funktionen <code>dynamic_sidebar()<\/code>och tillhandah\u00e5ller handtaget som parameter. \u00d6ppna <code>sidebar.php<\/code>och l\u00e4gg till f\u00f6ljande i <code>&lt;aside&gt;<\/code>taggarna:<\/p>\n<pre><code>&lt;aside class=\"sidebar\"&gt;\n    &lt;ul&gt;&lt;?php dynamic_sidebar('sidebar-area'); ?&gt;&lt;\/ul&gt;\n&lt;\/aside&gt;<\/code><\/pre>\n<p>L\u00e4gg m\u00e4rke till att jag lindade in den i en oordnad listtagg (<code>&lt;ul&gt;<\/code>). Detta beror <code>dynamic_sidebar<\/code>p\u00e5 att alla widgets som \u00e4r inslagna i <code>&lt;li&gt;<\/code>objekt som standard visas. Jag uppmuntrar dig att leka med utdataparametrarna om du inte gillar att widgets \u00e4r en lista.<\/p>\n<p>N\u00e4r det g\u00e4ller sidfoten l\u00e4gger vi till den i b\u00f6rjan av <code>footer.php<\/code>, insvept i en <code>&lt;footer&gt;<\/code>tagg (om du vill).<\/p>\n<pre><code>    &lt;footer&gt;\n        &lt;ul&gt;&lt;?php dynamic_sidebar('footer-area'); ?&gt;&lt;\/ul&gt;\n    &lt;\/footer&gt;\n    &lt;?php wp_footer(); ?&gt;\n...<\/code><\/pre>\n<p>Det \u00e4r det f\u00f6r menyer och widgetomr\u00e5den. Ditt tema har nu anv\u00e4ndarens flexibilitet att skapa en ny meny och anv\u00e4nda en widget f\u00f6r att visa den i sidof\u00e4ltet eller sidfoten. I <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-10-fleshing-out-templates\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">n\u00e4sta lektion<\/a> i denna handledningsserie kommer vi att skapa fler mallar till v\u00e5rt tema.<\/p>\n<h2>Dokumentation om anv\u00e4nda metoder<\/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\/register_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_nav_menu<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_nav_menu<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_sidebar\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_sidebar<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/dynamic_sidebar\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dynamic_sidebar<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Den h\u00e4r lektionen handlar om hur du l\u00e4gger till navigeringsmenyer genom att registrera menyplacering och \u00e4ven registrera och placera ett widgetomr\u00e5de i WordPress.<\/p>\n","protected":false},"author":1,"featured_media":224072,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[932,901,724,838,848,901,1110,755,755,838,932,848,724,868,868],"tags":[1173],"class_list":["post-233815","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aemnen","category-koda","category-utvecklaren","category-guide-foer-nyboerjare","category-handledningar","category-n-a","category-oeppen-kaella","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/233815","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=233815"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/233815\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/224072"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=233815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=233815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=233815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}