Migration Guide: v2.x → v3.0.0

Everything you need to know to upgrade WP Render Blogroll Links for PHP 8.4 and modern WordPress compatibility.

Overview

Version 3.0.0 is a major update that brings WP Render Blogroll Links into the modern WordPress and PHP ecosystem. The original plugin was abandoned and has been taken over and updated by Douglas LaMar – Sensible Websites.

Key Change: v3.0.0 is fully compatible with PHP 8.4 and WordPress 6.x+. All existing shortcodes remain backward-compatible — no changes are needed to your [wp-blogroll] tags.
Good News: For most users, upgrading is as simple as deactivating the old version and installing v3.0.0. Your shortcodes and settings will continue to work without any changes.

What's New in v3.0.0

PHP 8.4 Compatibility

All deprecated PHP functions and patterns have been updated. The plugin now runs cleanly on PHP 8.0 through 8.4 with no warnings or notices.

WordPress 6.x+ Support

Updated to work with the latest WordPress APIs and coding standards, including compatibility tested up to WordPress 6.7.

Code Modernization

Replaced deprecated extract() usage, updated type handling, and resolved all PHP strict-mode warnings.

New Maintainer

Originally developed by Tanin Ehrami, now actively maintained by Douglas LaMar – Sensible Websites with ongoing support and updates.

Breaking Changes

Minimal Breaking Changes: v3.0.0 has been designed to be backward-compatible. However, sites with heavily customized code should review the items below.
Area Change Impact
PHP Version Minimum PHP version raised to 8.0 Medium – Sites running PHP 7.x or earlier must upgrade PHP first
extract() Removal extract() calls have been replaced with explicit variable assignments Low – No user-facing impact, internal code change only
Admin Page Deprecated screen_icon() call removed from admin settings page Low – Cosmetic: admin page icon no longer shown (was already hidden in modern WordPress)
Admin Capability Admin menu capability changed from numeric 8 to string 'manage_options' Low – Follows modern WordPress capability conventions
Implicit Nullable Types Function parameters updated to use explicit nullable types where needed Low – Internal change, eliminates PHP 8.4 deprecation notices

PHP 8.4 Compatibility Changes

The following PHP changes were addressed in v3.0.0 to ensure clean operation on PHP 8.4:

1. Removed extract() Usage

PHP 8.4 deprecates extract() with EXTR_SKIP flag in certain contexts. v3.0.0 replaces all extract() calls with explicit variable assignments from the parsed arguments array.

// Before (v2.x)
$r = wp_parse_args( $args, $defaults );
extract( $r, EXTR_SKIP );

// After (v3.0.0)
$r = wp_parse_args( $args, $defaults );
$show_updated = $r['show_updated'];
$show_description = $r['show_description'];
// ... explicit assignments for each variable

2. Deprecated screen_icon() Removed

The screen_icon() function was deprecated in WordPress 3.8 and triggers errors on PHP 8.4+. It has been removed from the admin settings page.

// Before (v2.x)
screen_icon('options-general');

// After (v3.0.0)
// Removed — no longer needed in modern WordPress admin

3. Numeric Capability Level Replaced

WordPress deprecated numeric user level capabilities. The admin menu registration now uses the string-based 'manage_options' capability.

// Before (v2.x)
add_options_page('WP Render Blogroll Links', 'WP Blogroll Links', 8, ...);

// After (v3.0.0)
add_options_page('WP Render Blogroll Links', 'WP Blogroll Links', 'manage_options', ...);

4. Implicit Nullable Parameters

PHP 8.4 deprecates implicitly nullable parameters. Function signatures have been updated to use explicit nullable type declarations where default values of null are used.

5. Strict Type Handling

PHP 8.4 enforces stricter type comparisons. String-to-integer comparisons and null parameter handling have been updated throughout the codebase.

Upgrade Steps

Important: Always back up your site and database before upgrading any plugin.

Step 1: Verify PHP Version

Ensure your server is running PHP 8.0 or higher (PHP 8.4 recommended). You can check this in your hosting control panel or via Tools → Site Health in WordPress.

Step 2: Back Up Your Site

  1. Create a full backup of your WordPress files and database
  2. If you have customized the plugin files directly, save a copy of your changes

Step 3: Deactivate the Old Version

  1. Go to Plugins in your WordPress admin
  2. Click Deactivate on WP Render Blogroll Links

Step 4: Delete the Old Version

  1. After deactivating, click Delete to remove the old plugin files
  2. This ensures no old files conflict with the new version

Step 5: Install v3.0.0

  1. Download wp-render-blogroll-links.zip
  2. Go to Plugins → Add New → Upload Plugin
  3. Upload the zip file and click Install Now
  4. Click Activate Plugin

Step 6: Verify

  1. Visit any page or post with [wp-blogroll] shortcodes
  2. Confirm links render correctly
  3. Check the admin settings page at Settings → WP Blogroll Links

Shortcode Compatibility

100% Backward Compatible: All existing [wp-blogroll] shortcode parameters work identically in v3.0.0. No changes to your page/post content are required.

The following shortcode parameters all continue to work as documented:

Parameter Status in v3.0.0
catidUnchanged
catnameUnchanged
excludecatUnchanged
orderbyUnchanged
orderUnchanged
catorderbyUnchanged
catorderUnchanged
limitUnchanged
showdescUnchanged
showcatdescUnchanged
notitleUnchanged
showbrkUnchanged
showdashUnchanged
show_imagesUnchanged
always_show_namesUnchanged
show_names_under_imagesUnchanged
show_rssUnchanged
rss_imageUnchanged
forcerelUnchanged
linkclassUnchanged
showhideUnchanged
livelinksUnchanged

Custom Code Updates

If you have customized the plugin's PHP file or written code that interacts with the plugin's functions, review the following changes:

walk_bookmarks_plus()

The function signature and behavior remain identical. Internal variable extraction has been modernized, but the function accepts the same parameters and produces the same output.

wp_list_bookmarks_plus()

Same as above — the function signature is unchanged. Internal use of extract() has been replaced with direct array access, but output is identical.

renderlinks_tc_hnd()

The main shortcode handler function continues to accept all the same shortcode attributes and produce the same HTML output.

Custom Modifications: If you previously edited WP-Render-Blogroll.php directly, you will need to re-apply your changes to the v3.0.0 file. We recommend using a child theme or a custom plugin for modifications to avoid losing changes during future updates.

Testing & Verification

Pre-Upgrade Checklist

Post-Upgrade Verification

  1. Check link output — Visit every page/post with [wp-blogroll] and verify links display correctly
  2. Test all parameters — If you use parameters like catid, showdesc, showhide, etc., confirm they still work
  3. Check the admin page — Go to Settings → WP Blogroll Links and confirm it loads without errors
  4. Check error logs — Review your PHP error log for any deprecation notices or warnings
  5. Test the bookmarklet — If you use the "Add to Blogroll" bookmarklet, verify it still functions
  6. Verify CSS styling — Confirm your custom CSS still applies correctly (class names are unchanged)

Troubleshooting

Causes:
  • PHP version is below 8.0
  • Old plugin files were not fully removed before installing v3.0.0
  • Conflicting custom modifications
Solutions:
  • Verify PHP is 8.0+ via Tools → Site Health
  • Delete the old plugin folder and reinstall v3.0.0 fresh
  • Deactivate all other plugins to test for conflicts
  • Check your PHP error log for specific error messages

Causes:
  • Plugin not activated after installation
  • WordPress Links Manager not enabled
  • No links exist in the Blogroll
Solutions:
  • Confirm the plugin is activated under Plugins
  • Install the Link Manager plugin if you don't see the Links menu
  • Go to Links → All Links and verify links exist

Cause: You may still have v2.x files present, or another plugin or theme is triggering PHP 8.4 deprecation warnings.

Solutions:
  • Verify you are running v3.0.0 — check Plugins page for version number
  • If the deprecation notice references WP-Render-Blogroll.php, ensure you've installed the correct v3.0.0 package
  • If notices come from other files, those are unrelated plugin/theme issues

Cause: User role capability mismatch or caching issues.

Solutions:
  • Ensure your WordPress user account has the manage_options capability (Administrator role)
  • Clear any server-side caching (object cache, page cache)
  • Try accessing Settings → WP Blogroll Links in an incognito browser window

Cause: The showhide feature uses inline JavaScript. A Content Security Policy (CSP) or JavaScript error may be blocking it.

Solutions:
  • Check your browser's developer console for JavaScript errors
  • Ensure your theme or security plugin isn't blocking inline scripts
  • Verify the shortcode includes showhide=1

Migration FAQ

No. All existing [wp-blogroll] shortcodes with all parameters are fully backward-compatible. You do not need to edit any pages or posts.

Yes. The HTML output structure and CSS class names (.linkcat, .brlink, .linkcattitle, .catdescription, .xoxo.blogroll, etc.) are identical in v3.0.0. Your existing CSS will continue to work.

v3.0.0 targets PHP 8.0+ and is recommended for PHP 8.4. If you are still on PHP 7.x, you should continue using v2.1.8 until you upgrade your PHP version. PHP 7.x has reached end-of-life and no longer receives security updates, so upgrading PHP should be a priority.

The original plugin was developed by Tanin Ehrami (0xtc.com). The plugin was abandoned and has been taken over by Douglas LaMar – Sensible Websites, who has updated it for PHP 8.4 and modern WordPress compatibility. The plugin is now actively maintained with ongoing support.

Yes — installing v3.0.0 replaces the plugin files. Before upgrading, save a copy of your customized file. After installing v3.0.0, you can compare the files and re-apply your changes. We recommend moving custom modifications to a separate custom plugin or theme functions file to prevent losing changes during future updates.

The "Add to Blogroll" bookmarklet is still available on the admin settings page at Settings → WP Blogroll Links. The original donation box from the previous author remains present in the admin for historical purposes.

Yes. The plugin is now actively maintained by Douglas LaMar – Sensible Websites. Future updates will address WordPress compatibility, bug fixes, and potential new features. Check plugins.lamarsoft.com/wp-render-blogroll-links for the latest version.

Ready to Upgrade?

Download v3.0.0 and enjoy full PHP 8.4 and modern WordPress compatibility.

Download v3.0.0