Remove Link Manager from core
|Reported by:||nacin||Owned by:|
The proposed 3.5 scope includes removing the Link Manager from core. This is not as straightforward as it sounds, and comes with a number of considerations. Here are two ways for us to "remove" it:
Hide the menu. For new installs, stop inserting default links and hide the menu, only. (Also the default widget.) For old installs, remove default links if those are the only ones they have. Hide the menu if they have no links. In this situation, we could make it so the menu does remain accessible, which means they could go in, insert a link, and suddenly the feature would come back to life.
Pros: Focuses on our main goal here, which is UI bloat.
Cons: Ignores code bloat and required future maintenance of essentially dead code.
Move everything to a plugin. For new installs, everything is gone. No more table, no more API. For old installs, on upgrade, install a compatibility plugin that contains the API, if they have any links. Remove the table on upgrade if they don't have any links beyond the default one.
Pros: Handles both UI and code bloat in one big swing.
Cons: Backwards compatibility nightmare. Functions are removed rather than deprecated. Even just truncating these functions and conditionally defining them could result in fatal errors from plugins expecting different return values. Sites not relying on the automatic upgrade could break.
Clearly, we need some kind of middle-ground approach. We should probably do an accounting of all code (off the top of my head, it'd be bookmark.php, bookmark-template.php, link-add.php, link-edit.php, link-manager.php, edit-link-form.php, admin/includes/bookmark.php; code in the schema; code in the taxonomy API). Then, figure out what our goals are for 3.5.