D’oh.
I fixed it, but I’ll leave this question in case others have similar problems.
When copy/pasting various options into wp-config.php I accidentally included this setting, which I don’t normally use:
// Overkill but FYI: disallows installation/updating of any theme or plugin
define('DISALLOW_FILE_MODS',true);
That produces the described problem, albeit by design.
Related Posts:
- How to Add a Third Level Sub Menu to the WordPress Admin Menu
- Admin menu as submenu from another plugin
- Creating a WordPress admin page without a menu for a plugin
- Removing an admin page added by a 3rd party plugin. Gravity forms in this example
- Adding an admin page – OOP approach not working
- Generate Advanced Custom Fields box in custom admin menu page
- Plugin development: how to create a form and get custom data?
- Master menu item for multiple plugins?
- How to make a WP admin button/menu similar to Jetpack Notifications?
- wp_verify_nonce() why return false?
- Detecting when a custom taxonomy has been changed and display alert?
- Sub menu with a URL parameter and access the page
- Removing WordPress Plugin Menu Item for a specific user
- add function to saving change on Options Pages
- Change the $parent_file of a plugin page
- reorder plugin menu position
- How do I remove the entire left nav bar in admin for certain level users?
- Hide Theme options and Customize Admin menu
- How to send little data between admin pages of my plugin?
- how can I link to a PlugIn admin-sub-menu page after processing a formular
- White page on custom plugin option submit
- Make menu page link inaccessible or disabled
- Show existing POST categories as items in the sidebar menu [closed]
- Polylang : Interverting languages after development [closed]
- Suggestions on Approach to New Plugin I’m Stuck On
- Dynamic admin submenu
- WP Plugins – Use includes to display page content
- Add menu page issues (permissions & position)
- How to use add_submenu_page() for editors?
- What’s causing this error? “Warning: Invalid argument”
- Move plugin-settings to ‘Settings’-menu in the admin
- Editing a text file from plugin menu
- WordPress Admin Menu defining function is seperate file
- creating a plug in that would tap into save/update action of posts [closed]
- Display Plugin Panels Outside of Admin Areas
- Why WP_Screeen doesn’t show all options with admin_body_class
- Plugin Admin Menu Boiler Plate
- add_submenu_page returns null
- Plugin – Admin menu page broken url
- How do I add an options page at the bottom of the list?
- How to remove a CPT Menu from the Root Admin only
- Show WordPress Plugin Menu(Admin) To Editor
- Add logo to admin menu in my plugin
- How do you add a settings page to another menu?
- Custom page in plugin visible in menu
- Adding custom Field To The Posts Listing
- Creating an admin button that when clicked shows a popup form
- add menu page not showing Icon
- Custom Icon assigned to menu items not working for multi-site networks
- Admin menu hilighting wrong item for CPT
- Creating Admin Submenu Page via Class Method
- Plugin option for input box validation
- How to add submenu to WordPress plugin in the same Directory of main Plugin?
- Assigning a custom post type to a custom page
- How can I pass value to function in add_menu_page?
- Getting 404 page not found error while trying to access add new plugin / themes
- Plugin menu replaced by another plugin?
- Plugin link does not appear in my toolbar
- admin_enqueue_scripts using hook_suffix vs GET page
- Submitting form to admin-post.php WordPress
- Update plugin from personal API
- Enabling free shipping on Woo Commerce by specific items [closed]
- WordPress apply_filters() Arguments Missing
- Gurenberg Block: How to migrate from el-Functions to JSX elements?
- Enable/Disable WP options programmatically
- Could not create directory
- Read text defined under __()
- Shortcode button dosent work for all posts. Work for first post only
- How to make wp_enqueue_style and wp_enqueue_script work only on custom post type
- Plugin stable tag on wordpress.org not updating
- how to disable blockrenderAppender inside all Innerblocks?
- Can I use custom CSS and js plugin to put JavaScript in to validate my forms
- WordPress Plugin [closed]
- Grab WordPress Salt Data From URL
- Unable to get WP_DEBUG, WP_DEBUG_DISPLAY, WP_DEBUG_LOG to work
- Add category selection to custom post type (plugin)
- How to install plugin only from PHP file?
- Add sub menu page in your plugin
- Certain functions are undefined when called form mu-plugins
- Custom Post Type Fields
- AJAX on Front-End Button Click not working – Custom Plugin
- Migrating Asp.Net site to WordPress site
- Plugin to email a post or page to someone
- Get Every Key & Value from Array then Display All in New Line
- Make plugin php file called directly aware of WordPress?
- WordPress get the latest plugin installed details
- Storing Form data in a different database
- Recent Posts+, how to solve multiwidget?
- How to reduce Apache connections caused by plugins?
- Having a widget only show up in print
- what functions to use to resize images and create DB metadata for them after/during upload?
- How to add site logo to wordpress displayed on the top left of the site name on the chrome tab or any other web browser? [closed]
- Related posts popup
- Get page type to display content
- Duplicator live to wamp https to http
- Woocommerce quick checkout form [closed]
- How to open author url linked to a new tab in settings page in the WordPress plugin list
- Multiple Post Thumbnails Not Returning URL for Background Image
- Is there any WordPress Plugin that provides video editing from front end side? [closed]
- Disappearing plugins