Opened 2 years ago
Last modified 18 months ago
#56362 assigned enhancement
Remove Link/Bookmark API form Core: Phase 2
Reported by: | desrosj | Owned by: | desrosj |
---|---|---|---|
Milestone: | Future Release | Priority: | normal |
Severity: | normal | Version: | 2.1 |
Component: | General | Keywords: | needs-patch dev-feedback |
Focuses: | Cc: |
Description
In WordPress 3.5, the Link Manager was disabled in Core by default in new installs, and hidden entirely when no links were present on a site updating (see #21307).
The intention was to return to this later and remove the Bookmark/Links API from Core entirely. However, no one returned to that second phase. This ticket is to explore removing this long hidden API from Core.
Change History (14)
#2
@
2 years ago
Also, this should be accompanied by a proposal posted to Making WordPress Core, which I intend to draft in the coming weeks.
#3
@
2 years ago
- Milestone changed from Awaiting Review to Future Release
+1 on all the points in your proposal.
#4
@
2 years ago
- Milestone changed from Future Release to 6.1
- Owner set to desrosj
- Status changed from new to assigned
I'm moving this to 6.1. I'd like to get this done sooner rather than later to avoid what happened previously.
#5
follow-up:
↓ 6
@
2 years ago
Sites have had 10 years to activate this plugin if they truly want this functionality. It's safe to say the overwhelming majority of sites that want this feature have this plugin active.
To be honest, it's the first I've ever heard of the plugin and for "old" sites which were using the functionality when the API was deprecated, the option was turned back on automatically, so they never had the need to install the plugin.
I don't remember ever seeing a notice about turning on the plugin in the dashboard either, so I suspect there are a lot more sites out there which still use the API and have no clue that they were expected to turn on a plugin.
As site-owners often skip a number of WP releases when updating, I think only allowing one major with the dashboard notice is cutting things a little too fine.
That is, of course, unless the dashboard notification telling people to turn on the plugin is backported all the way back to WP 3.7.
#6
in reply to:
↑ 5
@
2 years ago
- Keywords needs-patch added
- Milestone changed from 6.1 to 6.2
Replying to jrf:
I don't remember ever seeing a notice about turning on the plugin in the dashboard either, so I suspect there are a lot more sites out there which still use the API and have no clue that they were expected to turn on a plugin.
As site-owners often skip a number of WP releases when updating, I think only allowing one major with the dashboard notice is cutting things a little too fine.
That is, of course, unless the dashboard notification telling people to turn on the plugin is backported all the way back to WP 3.7.
I was thinking of going the opposite way. Instead of backporting the notice, the first major release after moving the necessary code to the plugin would include an admin notice that displays when sites appear to be using the API without the plugin instructing them to install the plugin because the API will be removed in a future release. Paired with __deprecated_function()
notices, this would hopefully be enough feedback/heads up.
Totally open to waiting more than 1 release if that's the consensus. But I think the approach I described above could allow for 1 or 2 major releases.
Time is running out on 6.1, though, so I'm going to focus on this next release.
This ticket was mentioned in Slack in #core by costdev. View the logs.
21 months ago
This ticket was mentioned in Slack in #core by mukeshpanchal27. View the logs.
21 months ago
#9
@
21 months ago
- Keywords dev-feedback added
- Version set to 2.1
This ticket was discussed in the recent bug scrub.
Ticket need feedback from the dev so added the workflow keyword.
Props to @costdev
#10
@
21 months ago
- Milestone changed from 6.2 to Future Release
I haven't been able to give this the attention it needs so far this cycle. Going to punt to Future Release until some progress can be made.
#11
@
18 months ago
+1 from me.
WP includes a lot of functionality that hasn't been used in many years, and we should be doing some house cleaning.
We should find a viable strategy to remove code like this... Deprecating functions and adding an admin notice sounds reasonable to me
#12
@
18 months ago
Just a heads-up: I just wanted to try and install the plugin on a site which is still using the Links module, but as the plugin hasn't been updated in 11 (!!!) years, it will not show up when a user searches for it from the WP admin panel.
Of course, I can download the plugin and then install it via an upload or via FTP, but that's besides the point.
What my point really is, is that the plugin hasn't been updated in 11 year.
This raises the following questions:
- Will the plugin as-is still work with WP 6.2+ ?
- Will the plugin as-is still work with more recent PHP versions ? (think: PHP 5.5 and higher as PHP 5.5 wasn't released yet 11 years ago...)
Additionally, I worry that an official recommendation to install a plugin which hasn't had an update in 11 years, would undermine all efforts which try to teach admins to look critically whether plugins are still maintained etc to prevent security issues.
I believe that at the very least we should make sure the plugin gets a thorough once over for WP and PHP compatibility issues and a new point release, which will allow end-user admins to install the plugin from the comfort of the admin dashboard.
I'd also recommend that the plugin be set up with a repo on GitHub to allow for future maintenance of it in a more accessible way.
Here is some fact finding and rough back of napkin thoughts in no particular order:
add_filter()
).pre_option_link_manager_enabled
filter. Only 3 have 10k active installs (Link Manager is first with ~50k).get_bookmark()
: 67 plugins, 107 matches, 5 over 50k installs.get_bookmarks()
: 176 plugins, 402 instances, 4 over 50k installs.wp-admin/includes/bookmark.php
directly: 87 plugins, 488 instances, 2 over 50k installs.It seems reasonable to:
(function|class)_exists()
checks.activate_plugins
capability when the Link API appears to be active and links exist that they should update the plugin._deprecated_function()
notices to the related functions when the Link Manager is not active and at the correct version recommending the user installs or updates the plugin.