[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1vyy4plz5exp6":3},{"_id":4,"slug":5,"title":6,"subtitle":7,"kind":8,"cards":9,"tags":58,"categories":60,"source":62,"lang":65,"author":66,"audioState":69,"stats":70,"publishedAt":73,"renderer":74},"6abb0e52ca21c797c7e9be48","rebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a","Rebuild a WordPress navigation menu with Claude without touching the live header until you're ready","Reorganising a site's main menu is one of those jobs that sounds small and isn't.","news",[10,14,19,24,29,33,38,43,48,53],{"headline":11,"body":12,"imageUrl":13,"sourceImageUrl":13},"Rebuild a WordPress navigation menu with Claude without touching the live…","Reorganising a site's main menu is one of those jobs that sounds small and isn't. A client wants \"Services\" split into three, the blog moved under \"Resources\", two dead links gone and the order changed. In wp-admin that's twenty minutes of dragging items around on the menu visitors are using right now. One wrong drop and the header is broken until you notice.","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpd03shfopewx03jll9sw.png",{"headline":15,"body":16,"imageUrl":17,"images":18},"It's also a job people now ask an","It's also a job people now ask an AI client to do. The risky way is to let the agent edit the live menu item by item. This post shows a safer pattern that works with any MCP client (Claude Code, Claude Desktop, Cursor, VS Code and others): build the new menu beside the old one, check it, swap the theme location, and keep the old menu as your way back.","\u002Fapi\u002Fmedia\u002Fposts\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a\u002F1.webp",{"local":17},{"headline":20,"body":21,"imageUrl":22,"images":23},"Everything here uses WPPilot Free, a self-hosted WordPress","Everything here uses WPPilot Free, a self-hosted WordPress plugin that turns your site into an MCP server. Your AI client brings its own model; there's no relay in between.","\u002Fapi\u002Fmedia\u002Fposts\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a\u002F2.webp",{"local":22},{"headline":25,"body":26,"imageUrl":27,"images":28},"Disclosure: I work on WPPilot. Ability names and","Disclosure: I work on WPPilot. Ability names and behaviour below are taken from the public WordPress core ability reference.","\u002Fapi\u002Fmedia\u002Fposts\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a\u002F3.webp",{"local":27},{"headline":25,"body":30,"imageUrl":31,"images":32},"Disclosure: I work on WPPilot. Ability names and behaviour below are taken from the public WordPress core ability reference. One scope note first: classic menus","\u002Fapi\u002Fmedia\u002Fposts\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a\u002F4.webp",{"local":31},{"headline":34,"body":35,"imageUrl":36,"images":37},"The menu abilities in WPPilot work on classic","The menu abilities in WPPilot work on classic navigation menus: the ones you manage under Appearance → Menus and assign to theme locations like \"Primary\" or \"Footer\". If your site runs a block theme whose header uses a Navigation block, this exact workflow doesn't apply. Check before you start: if Appearance → Menus exists and your theme lists menu locations, you're good. The abilities you'll use (all Free)","\u002Fapi\u002Fmedia\u002Fposts\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a\u002F5.webp",{"local":36},{"headline":39,"body":40,"imageUrl":41,"images":42},"Two abilities to keep away from in this","Two abilities to keep away from in this job: delete-menu (permanent, menus have no trash) and delete-menu-item (permanent). Both need explicit confirmation anyway. The whole point of this pattern is that you never need them until the new menu has been live for a while. You need self-hosted WordPress 6.9+, PHP 8.0+ and HTTPS if your client connects remotely.","\u002Fapi\u002Fmedia\u002Fposts\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a\u002F6.webp",{"local":41},{"headline":44,"body":45,"imageUrl":46,"images":47},"Download wppilot.zip from the latest GitHub release (it","Download wppilot.zip from the latest GitHub release (it isn't on WordPress.org) and upload it under Plugins → Add New → Upload Plugin.","\u002Fapi\u002Fmedia\u002Fposts\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a\u002F7.webp",{"local":46},{"headline":49,"body":50,"imageUrl":51,"images":52},"Leave the safety profile on Production Safe, the","Leave the safety profile on Production Safe, the install default. It blocks PHP execution, WP-CLI, filesystem and database access, and plugin\u002Ftheme installs, none of which a menu job needs. Connect your client. With Claude Code over OAuth:","\u002Fapi\u002Fmedia\u002Fposts\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a\u002F8.webp",{"local":51},{"headline":54,"body":55,"imageUrl":56,"images":57},"Use a WordPress account that can already manage","Use a WordPress account that can already manage menus in wp-admin. Every MCP call inherits that user's permissions, so the agent can't do more than that account can. Step 1: Have the agent describe what's there Start with reads only. This prompt changes nothing: You now have a written snapshot of the current menu. Save it next to your ticket. It's the plan's \"before\". Step 2: Build the new menu beside the old one Give the agent the target structure in plain language and make it build a new menu:","\u002Fapi\u002Fmedia\u002Fposts\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touc-d303758a\u002F9.webp",{"local":56},[59],"dev",[61],"Technology",{"name":63,"url":64},"Dev.to","https:\u002F\u002Fdev.to\u002Fwppilot\u002Frebuild-a-wordpress-navigation-menu-with-claude-without-touching-the-live-header-until-youre-ready-216n","en",{"handle":67,"displayName":68},"spots","Spots","queued",{"views":71,"likes":72,"saves":72,"shares":72,"completions":72,"opens":72,"skips":72,"depthSum":72},3,0,"2026-09-29T01:03:14.541Z","local"]