Settings action link is missing from the Plugins screen
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- backend, testing-qa
Direzione di ricerca
Start in includes/classes/wp-maintenance-mode-admin.php, tracing __construct(), load_default_settings(), and add_settings_link(); check the bootstrap in wp-maintenance-mode.php and compare v2.6.15 with v2.6.16. Run the relevant admin tests, including single-site and network-admin contexts; done means the Settings action appears on both Plugins screens and coverage verifies registration timing.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
The LightStart row on the WordPress Plugins screen does not expose its expected Settings action in the inspected release path. The plugin is expected to provide a direct configuration link alongside its plugin-row actions, but version 2.6.23 registers that action ineffectively. This makes the settings page harder to discover, although administrators can still access it from the separate LightStart sidebar menu.
Customer context
- Product / area: LightStart / Plugins screen action links
- Version: 2.6.23
- Environment: WordPress administration; role, WordPress version, PHP version, and multisite status not provided
- Integration / third party: Not provided
- Reported error / symptom: No settings button was available for configuration
- Impact: The reporter could not find a direct route to configure the plugin and deactivated it after nine minutes.
Reproduction notes
- Install and activate LightStart 2.6.23.
- Open the WordPress
Pluginsscreen as an administrator. - Inspect the action links under the LightStart plugin row.
- Expected: a
Settingsaction opens the LightStart configuration page. - Source-confirmed result: registration uses the plugin basename before that property is initialized, so the plugin-specific callback is not attached. Runtime reproduction was not performed during triage.
Diagnosis
Conclusion
The plugin-row Settings action is registered before the dynamic hook's plugin basename has been initialized. At construction time, the resulting filter name lacks the basename used by the Plugins screen, while no later registration occurs after initialization. Git history shows that initialization moved from the constructor to init in commit c4b35add6226e0bb36c7e96eea6bdac3c0fbc7ca; the commit first appears in v2.6.16, while v2.6.15 retains constructor-time initialization. The defect remains in the reported v2.6.23 source.
Where this likely occurs
wp-maintenance-mode.php— plugin bootstrap approx. lines 68–74 registersWP_Maintenance_Mode_Admin::get_instance()onplugins_loadedfor admin requests.includes/classes/wp-maintenance-mode-admin.php—WP_Maintenance_Mode_Admin::__construct()lines 25–46 defers property initialization toinitbut immediately constructs theplugin_action_links_{$plugin_basename}or network equivalent filter name.includes/classes/wp-maintenance-mode-admin.php—WP_Maintenance_Mode_Admin::load_default_settings()lines 100–107 assignsplugin_basenameonly wheninitlater runs.includes/classes/wp-maintenance-mode-admin.php—WP_Maintenance_Mode_Admin::add_settings_link()lines 1085–1099 defines the expectedSettingslink callback, but the inspected registration path does not attach it to the plugin-specific hook.- Commit
c4b35add6226e0bb36c7e96eea6bdac3c0fbc7camoved basename initialization out of the constructor. Tags containing the change begin atv2.6.16;v2.6.23still contains it.
Engineering notes
The same ordering affects both the ordinary and network-admin plugin-row filter selection because the network-activation condition also receives the not-yet-initialized basename. The callback itself builds its URL after init, so the inspected failure is in registration timing rather than URL generation. The separate top-level LightStart admin menu is registered later and is outside this defect's scope.
Test coverage status
No relevant coverage was found during inspection for plugin-row action-link registration on either single-site or network-admin Plugins screens. Existing tests/e2e specs navigate directly to the settings URL and do not assert the plugin-row action. tests/helpers-test.php covers settings capabilities but not dynamic plugin action hooks.
What to verify or explore next
- Reproduce on
v2.6.23by activating LightStart and inspecting its row on the single-site Plugins screen. - Repeat with network activation and inspect the Network Admin Plugins screen.
- Compare the registered dynamic action-link hooks on
v2.6.15andv2.6.16. - Exercise the relevant admin test suites under administrator and network-administrator contexts.
Unknowns / follow-up
- The feedback does not identify whether the site was single-site or multisite.
- Local browser-based reproduction was not performed; confirmation is based on the reachable initialization and hook-registration sequence in tagged source.
- No matching open GitHub issue was found after reading the repository's open issue inventory.
Confidence
Confidence: 96/100
Version 2.6.23 source confirms that the plugin-row action link is attached using an uninitialized dynamic hook name, and git history identifies a v2.6.16 regression boundary. The sidebar report is not confirmed because the inspected code registers a top-level LightStart menu for users with the required capability, while the feedback omits role and runtime details.
Source: automated uninstall feedback — wp-maintenance-mode, 2026-09-26
Generated by bug-report-triage (ID: bug-report-triage_6ab8a3106d6f99.06487082)
- Lingua principale
- PHP
- Stelle
- 163
- Fork
- 82
- Merge medio
- 8h 53m
- PR unite (30g)
- 7
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Codeinwp/wp-maintenance-mode
-
Selected-page maintenance mode does not return HTTP 503Forse già presa @Alexia-Soare l’ha presa 5 giorni fa. Apertabug-report bug-report-triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 78/100
Codeinwp/wp-maintenance-mode#569 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Activating LightStart corrupts `show_on_front` option, breaking `front-page.php` template loadingApertacustomer report
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
Codeinwp/wp-maintenance-mode#564 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Wizard activation does not purge cached live pagesForse già presa @selul l’ha presa 19 giorni fa. Apertabug-report bug-report-triage
Codeinwp/wp-maintenance-mode#557 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
feature-request-triage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 50/100
Codeinwp/wp-maintenance-mode#550 ·
I maintainer di solito rispondono entro 1 giorno
-
feature-request-triage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
Codeinwp/wp-maintenance-mode#549 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Codeinwp/wp-maintenance-mode
Issue simili
-
sync-en
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 2 giorni
-
P2 testing
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
1.severity: security
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Automattic/static-site-importer#1879 ·
I maintainer di solito rispondono entro 1 giorno
-
bug Installation / Upgrade
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno