{"id":230976,"date":"2022-12-09T19:51:00","date_gmt":"2022-12-09T16:51:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230976"},"modified":"2022-12-07T12:04:56","modified_gmt":"2022-12-07T09:04:56","slug":"wordpress-admin-menu-alivalikon-uudelleenjaerjestaeminen","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-admin-menu-alivalikon-uudelleenjaerjestaeminen\/","title":{"rendered":"WordPress Admin Menu: Alivalikon uudelleenj\u00e4rjest\u00e4minen"},"content":{"rendered":"\n<p>Yksi WordPress-valikkosovellusliittym\u00e4n (eli <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_menu_page\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">add_menu_page<\/a>, <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_submenu_page\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">add_submenu_page<\/a> ja vastaavista) kanssa ty\u00f6skentelyss\u00e4 olevista asioista on, ett\u00e4 se ei helpota alivalikon kohteiden j\u00e4rjest\u00e4mist\u00e4 uudelleen.<\/p>\n<p>Tiettyjen asioiden, kuten taksonomioiden tai vastaavien, osalta voit vain muuttaa j\u00e4rjestyst\u00e4, jossa ne rekister\u00f6id\u00e4\u00e4n. Mutta oletetaan, ett\u00e4 sinulla on WordPressin j\u00e4rjestelm\u00e4nvalvojavalikko ja sitten muutama alivalikkosivu kyseisen valikon alla.<\/p>\n<p>Oletusarvoisesti WordPress luo yl\u00e4tason valikon, jonka j\u00e4lkeen se luo heti yl\u00e4tason valikon alle alivalikkokohdan, joka linkitt\u00e4\u00e4 samalle sivulle. Monissa tapauksissa t\u00e4m\u00e4 voi olla ihanteellinen.<\/p>\n<p>Joissakin tapauksissa saatat kuitenkin haluta muuttaa sit\u00e4.<\/p>\n<h2>WordPressin j\u00e4rjestelm\u00e4nvalvojan valikko<\/h2>\n<p>Esimerkkin\u00e4 siit\u00e4, milloin haluat ehk\u00e4 muuttaa jotain, voisi olla jotain t\u00e4llaista:<\/p>\n<ul>\n<li>Sinulla on yl\u00e4tason valikko, jonka tarkoituksena on tarjota vaihtoehtoja, kun olet muodostanut yhteyden kolmannen osapuolen sovellusliittym\u00e4\u00e4n,<\/li>\n<li>Kolmannen osapuolen sovellusliittym\u00e4 vaatii API-avaimen (tai jonkin muun todennuksen), joten sinun on ensin m\u00e4\u00e4ritett\u00e4v\u00e4 sen asetukset,<\/li>\n<li>Mikset tee ensimm\u00e4isest\u00e4 valikon kohdasta Asetukset ja toisesta valikosta todellisia API-ty\u00f6kaluja?<\/li>\n<\/ul>\n<p>Tietysti, kun asetuksia ei ole asetettu, on hy\u00f6dyllist\u00e4 my\u00f6s n\u00e4ytt\u00e4\u00e4 API-ty\u00f6kalut-p\u00e4\u00e4valikossa viesti, ett\u00e4 k\u00e4ytt\u00e4j\u00e4n tulee napsauttaa Asetukset-sivua sy\u00f6tt\u00e4\u00e4kseen asetukset.<\/p>\n<p>Mutta se ei kuulu t\u00e4m\u00e4n postauksen piiriin. Toistaiseksi t\u00e4ss\u00e4 on tapa hallita valikon uudelleenj\u00e4rjest\u00e4mist\u00e4 palvelinpuolelta. Ensin <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/f4a31feab1a5601496afa644f21e2956#file-00-reorder-submenu-items-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">koodi<\/a><\/strong>, sitten selitys.<\/p>\n<pre><code>&lt;?php\nadd_action('custom_menu_order', __NAMESPACE__.'acmeReorderSubmenuItems);\n\/**\n * Reorders the menu by placing the second item before the first item.\n *\/\nfunction acmeReorderSubmenuItems()\n{\n    global $submenu;\n    $newSubmenu = [];\n    foreach ($submenu as $menuName =&gt; $menuItems) {\n        if ('acme-api-tools' === $menuName) {\n            $newSubmenu[0] = $menuItems[1];\n            $newSubmenu[1] = $menuItems[0];\n            $submenu['acme-api-tools'] = $newSubmenu;\n            break;\n        }\n    }\n}<\/code><\/pre>\n<p>Yleisesti ottaen k\u00e4yt\u00e4n t\u00e4t\u00e4 nimiavaruuden objektin yhteydess\u00e4, mutta t\u00e4t\u00e4 viesti\u00e4 varten siirr\u00e4n sen funktioon, joka on olemassa nimiavaruudessa.<\/p>\n<\/p>\n<p>Muutama huomioitavaa:<\/p>\n<ul>\n<li>K\u00e4yt\u00e4n <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\/custom_menu_order\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">custom_menu_order-<\/a> koukkua, joka on ihanteellinen paikka ty\u00f6st\u00e4\u00e4 WordPressin valikon kohteita,<\/li>\n<li>Etsin erityisesti acme-api-tools-alivalikkoa <strong>$menuName<\/strong> &#8211; avaimesta <strong>$<\/strong> submenu- taulukkomuuttujassa,<\/li>\n<li>Luon taulukon <strong>$newSubmenu<\/strong> ja vaihdan sitten kohteet ja liit\u00e4n uuden alivalikon avaimella tunnistettuun olemassa olevaan alivalikkoon.<\/li>\n<\/ul>\n<p>T\u00e4h\u00e4n l\u00e4hestymistapaan liittyy muutamia huomautuksia \u2013 ehk\u00e4 jopa ongelmia (tai ainakin vakavia n\u00e4k\u00f6kohtia).<\/p>\n<p>Nimitt\u00e4in koodi odottaa tiet\u00e4v\u00e4n tarkasti avaimen, jonka kanssa haluamme ty\u00f6skennell\u00e4. Joissakin tapauksissa t\u00e4m\u00e4 on hyv\u00e4, mutta jos haluat muokata valikkoa, jonka avainta ei tunne (kuten <strong>acme-api-tools<\/strong> ), sinun on muutettava t\u00e4t\u00e4.<\/p>\n<p>Seuraavaksi t\u00e4m\u00e4 my\u00f6s olettaa, ett\u00e4 vaihdettavia valikkokohteita on vain kaksi. Se on riitt\u00e4v\u00e4n helppoa yll\u00e4 olevassa tapauksessa, mutta jos niit\u00e4 olisi enemm\u00e4n, tarvitset todenn\u00e4k\u00f6isesti toiminnon, joka k\u00e4sittelee asioiden siirt\u00e4mist\u00e4 ja uuden taulukon palauttamista.<\/p>\n<h2>Tarpeeksi aloittaaksesi<\/h2>\n<p>Yll\u00e4 olevan toiminnon pit\u00e4isi kuitenkin antaa tarpeeksi tietoa ainakin kuinka aloittaa t\u00e4m\u00e4, jos ei enemm\u00e4n, ja kuinka sitten voidaan k\u00e4sitell\u00e4 n\u00e4kyv\u00e4\u00e4 alivalikkotaulukkoa.<\/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>WordPress luo yl\u00e4tason valikon ja luo sitten yl\u00e4tason valikon alle alivalikkokohteen, joka linkitt\u00e4\u00e4 samalle sivulle. Haluat ehk\u00e4 muuttaa sen.<\/p>\n","protected":false},"author":1,"featured_media":236238,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[895,843,803,864],"tags":[1166],"class_list":["post-230976","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-koodi","category-opetusohjelmia","category-php-5","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230976","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=230976"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230976\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/236238"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=230976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=230976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=230976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}