+ The ID in the frontend differs to the widget ID in backend:
class custom_Media_Widget extends WP_Widget
{
/**
* @param string $idBase
* @param string $name
* @param array $widgetOptions
* @param array $controlOptions
*/
public function __construct(
string $idBase = 'media_widget',
string $name = 'Media Asset Widget',
array $widgetOptions = [],
array $controlOptions = []
) {
$widgetOptions ['classname'] = 'media_widget';
$widgetOptions ['description'] = 'Widget for Media Assets';
parent::__construct($idBase, $name, $widgetOptions, $controlOptions);
}
public function widget($args, $instance)
{
var_dump($args['widget_id']);
//....
}
}
will output: string 'media_widget-3' (length=14)
Edit: The id/number which is set in the backend isn’t relevant anymore.
I test it on the meta widget and it show the same behaviour.
ID: meta-13 on save
ID: meta-2 in frontend
@lgladdy
I use locally
Wordpress 5.8.1
ACF version 5.10.2
Advanced Custom Fields Multilingual 1.9.1
WPML Media 2.6.5
WPML Multilingual CMS 4.4.12
WPML String Translation 3.1.10
WPML Translation Management 2.10.8.
When I save my custom widget, the widget get the ID media_widget-1
but the saved options receive the ID widget_media_widget-12
Workflow:
- Add Custom Widget
- Fill out loaded ACFs
- ID is
<input class="widget-id" type="hidden" name="widget-id" value="media_widget-12">
<– maybe the ID should be 1 not 12
- Click on
Update
- Reload the page
- After reloading the Gutenberg the id has changed to
media_widget-1
:<input class="widget-id" type="hidden" name="widget-id" value="media_widget-1">
Hope this will help.