WordPress APIs usually refer to group of functions and concepts and are not versioned. Any versions refer to WP itself (or in some cases to bundled components, developed by third parties such as jQuery).
In WordPress version 2.8 creating widgets was refactored from older code (which you shouldn’t care about) to newer class-based code (which you should use).
So it’s not like it is exactly same as it was in 2.8 (likely it isn’t) but approach is same since then.
Related Posts:
- Automatically determine minimum WordPress version required for a plugin?
- Is it necessary to bump a plug-in’s version if you’re just updating the “Tested up to” attribute?
- What is the importance of writing a < WP 3.x compatible plugin nowadays?
- Plugin development: How many plugin and WordPress version combinations to support?
- How best to handle database version dependence (from $wp_db_version)
- Problem with Owl Carousel, infinite loop [closed]
- Objective Best Practices for Plugin Development? [closed]
- How can I add an option to the Page Template list from a Plugin?
- Using composer for dependency management in plugindevelopment
- What is nonce and how to use it with Ajax in WordPress? [duplicate]
- wp_mail is undefined
- Why does do_action pass a blank string as the first parameter if no $arg is set?
- Build path for a custom portfolio plugin
- How to save block attributes when the output doesn’t change
- add_filter and remove_filter added before and after wp_query
- What is the difference between strip_tags and wp_filter_nohtml_kses?
- How to: Rest endpoint returning empty object
- Ensuring a plugin is loaded/run last?
- How can I hook into existing WordPress Bulk actions?
- Scheduled event does not run at midnight
- Plugin options table,is the data serialized
- Can’t echo get_delete_post_link
- Why is my shortcode not working
- Creating option to allow user to select the page my plugin content will display on
- What is the difference between these two methods of writing $ instead of jQuery in WordPress [closed]
- Can I differentiate between “Delete Post Permanently” and “Empty Trash” and do something for each accordingly?
- Use php libarary in wordpress plugins
- Can’t get JS code to work with shortcode
- unable to stop loop when using wp_insert_post with publish_post hook
- How to add a secondary button to a settings page with a custom action?
- Plugin options page – form with two different submit buttons
- Show Parent category and Subcategory
- Frontend Ajax call not working using wp_ajax, wp_enqueue_script and wp_localize_script
- best practice for query string values – get_query_var always empty for my value supplied in query string
- update post meta for checkbox in the admin when inserted in the front-end
- Gutenberg Block showing invalid content on edit
- Register a sidebar in a WordPress plugin
- Plugin development: can’t update settings with multiple settings sections
- How to implement filesystem cache in WordPress
- Check for template part, else filter content
- How can I add a custom “Text” widget to Appearance manager from functions.php?
- How to stop your plugin from executing on certain pages?
- what are the checksums surrounding keywords in the SQL generated by WP_Query and do I need to use them too?
- Search the product by tag or category not working
- Is it possible to make sure that only my plugins output is shown to the enduser?
- How to do POST request with WP REST API v2 to custom table?
- Plugin generated virtual pages
- add javascript files only when plugin is called?
- wp_dropdown_roles() to replace option value = code
- WordPress function get_the_terms() returns ‘Invalid taxonomy’ error
- Codex Version Focus on Production or Nightly?
- Make a plugin page out of influence of the theme’s style
- plugin_dir_path wrong url
- 400 Bad Request, in wordpress theme development, wp_ajax
- Fatal error: Uncaught Error: Call to undefined function convert_to_screen()
- Return Value of load_plugin_textdomain
- Special Formatting for WordPress Plugin Description?
- Multiple array for post_content on plugin activation
- Using AND and bracket grouping in SQL not working
- Taxonomy archive page listing terms instead of posts
- Check if the current user is author of first comment
- custom wp_editor does not save the content in plugin settings
- How do I force a download in the admin area?
- add_action wp_ajax_ not loading in plugin file WP Network
- How Can I Add Code To A Preexisting Function Without Editing it
- Change the behaviour of a button
- Login page too many redirects
- Configuring Xdebug with docker compose
- escape html in jQuery for WordPress
- Progress bar in plugin within admin
- Jquery php request is returning a weird result
- WordPress admin panel not working
- Load script on frontend from widget plugin
- Can’t get wpColorPicker to work in a widget
- Get the current post/page URL with plain permalinks
- Using the same class across multiple functions
- ajax multiple Values
- Change Label of custom post type
- admin-ajax.php returns “No Script Kiddies!” sometimes
- Ajax functionality not being called under wordpress plugin
- Widget won’t be activated
- Plugin outputs content of posts unbidden!
- Add a description/hint field in the admin page of a plugin
- Client Profiles
- Saving multiple fields as array
- Serialized Data
- Can’t add images in wordpress to my page – button isn’t clickable
- Gutenberg and custom blocks messed up pagespeed score. What did I wrong?
- Gutenberg text field validation
- I don’t understand how symlinks in plugin work
- Undo operation not working in Rich text [Gutenberg]
- Update custom settings field in plugin
- URL rewrite parameter lost (add_rewrite_rule)
- PHPUnit Ajax Serialization of ‘Closure’ is not allowed
- WooCommerce adds a newline symbol (\n) between email recipients
- Upload to a specific media folder created by FileBird Lite
- Adding a navigation with wp_nav_menu() to a custom block in the site editor
- Why isn’t custom sidebar panel not showing up in the Gutenberg Editor?
- Ninja Forms: Front-End Forms, Post ID?
- Allow HTML in product attributes and variation for WooCommerce