Auto Image Attributes From Filename With Bulk Updater (Add Alt Text, Image Title For Image SEO) - Version 3.1

Version Description

  • Date: 24.March.2022.
  • Tested with WordPress 5.9.2.
  • New Feature: Added 'Skip Image' button for the Bulk Updater. Useful during troubleshooting. Read more.
  • Enhancement: Compatibility with Image Attributes Pro version 3.0. Check what's new in 3.0.
Download this release

Release Info

Developer arunbasillal
Plugin Icon 128x128 Auto Image Attributes From Filename With Bulk Updater (Add Alt Text, Image Title For Image SEO)
Version 3.1
Comparing to
See all releases

Code changes from version 3.0 to 3.1

README.md CHANGED
@@ -47,7 +47,7 @@ What the pro add-on you get these additional features:
47
  * Use post title as alt text. If image is not attached to a post, image filename will be used instead.
48
  * Use post title as caption. If image is not attached to a post, image filename will be used instead.
49
  * Use post title as description. If image is not attached to a post, image filename will be used instead.
50
- * Build your own attributes using custom tags like `%filename%`, `%posttitle%`, `%sitetitle%`, `%yoastfocuskw%`, `%rankmathfocuskw%`. Each custom tag will be replaced with it's value. You can combine them as you please!
51
  * Use Yoast Focus Keyword and Rank Math Focus Keyword as image attributes.
52
  * Clear any image attribute by setting it as blank / empty.
53
  * Exclude images from Bulk Updater. A meta box and a checkbox is added to the `Media Library` > `Edit Media` sidebar. When checked, the bulk updater will not update the attributes of that image in the media library or in posts / products where the image is used.
@@ -68,7 +68,7 @@ What the pro add-on you get these additional features:
68
  * Clean the actual image filename after upload.
69
  * Choose to turn off any of the above mentioned features.
70
 
71
- With the pro bulk updater you can:
72
 
73
  * Update image title and alt text for images inserted into posts and custom post types. Not just the media library. [What is the difference?](https://imageattributespro.com/how-wordpress-store-image-attributes/?utm_source=github&utm_medium=readme.md)
74
  * Fine tune all settings. Choose what to update.
@@ -76,13 +76,18 @@ With the pro bulk updater you can:
76
  * Update image titles / alt text in media library and existing posts.
77
  * Update image titles / alt text in media library and existing posts only if no title / alt text is set. Existing image titles / alt text will not be changed.
78
  * Update image caption and description in the media library. Existing image captions and descriptions can be preserved.
79
- * Build your own attributes using custom tags like `%filename%`, `%posttitle%`, `%sitetitle%`, `%yoastfocuskw%`, `%rankmathfocuskw%`. Each custom tag will be replaced with it's value. You can combine them as you please!
80
  * Choose to turn off any of the above mentioned features.
81
  * Modify auto generated image attributes using the [iaffpro_image_attributes filter](https://imageattributespro.com/codex/iaffpro_image_attributes/?utm_source=github&utm_medium=readme.md).
82
  * Choose specific post types to bulk update using the [iaffpro_included_post_types filter](https://imageattributespro.com/codex/iaffpro_included_post_types/?utm_source=github&utm_medium=readme.md).
83
  * Disable updating of attributes in media library completely using the [iaffpro_update_media_library filter](https://imageattributespro.com/codex/iaffpro_update_media_library/?utm_source=github&utm_medium=readme.md).
84
  * Add or remove custom image attributes using the [iaffpro_html_image_markup_post_update filter](https://imageattributespro.com/codex/iaffpro_html_image_markup_post_update/?utm_source=github&utm_medium=readme.md)
85
 
 
 
 
 
 
86
  For screenshots, FAQ and further details, please see the [product website](https://imageattributespro.com/?utm_source=github&utm_medium=readme.md).
87
 
88
  ## Installation
47
  * Use post title as alt text. If image is not attached to a post, image filename will be used instead.
48
  * Use post title as caption. If image is not attached to a post, image filename will be used instead.
49
  * Use post title as description. If image is not attached to a post, image filename will be used instead.
50
+ * Build your own attributes using custom tags like `%filename%`, `%posttitle%`, `%sitetitle%`, `%category%`, `%tag%`, `%yoastfocuskw%`, `%rankmathfocuskw%`, `%seopresstargetkw%`. Each custom tag will be replaced with it's value. You can combine them as you please!
51
  * Use Yoast Focus Keyword and Rank Math Focus Keyword as image attributes.
52
  * Clear any image attribute by setting it as blank / empty.
53
  * Exclude images from Bulk Updater. A meta box and a checkbox is added to the `Media Library` > `Edit Media` sidebar. When checked, the bulk updater will not update the attributes of that image in the media library or in posts / products where the image is used.
68
  * Clean the actual image filename after upload.
69
  * Choose to turn off any of the above mentioned features.
70
 
71
+ With the Image Attributes Pro bulk updater you can:
72
 
73
  * Update image title and alt text for images inserted into posts and custom post types. Not just the media library. [What is the difference?](https://imageattributespro.com/how-wordpress-store-image-attributes/?utm_source=github&utm_medium=readme.md)
74
  * Fine tune all settings. Choose what to update.
76
  * Update image titles / alt text in media library and existing posts.
77
  * Update image titles / alt text in media library and existing posts only if no title / alt text is set. Existing image titles / alt text will not be changed.
78
  * Update image caption and description in the media library. Existing image captions and descriptions can be preserved.
79
+ * Build your own attributes using custom tags like `%filename%`, `%posttitle%`, `%sitetitle%`, `%category%`, `%tag%`, `%yoastfocuskw%`, `%rankmathfocuskw%`, `%seopresstargetkw%`. Each custom tag will be replaced with it's value. You can combine them as you please!
80
  * Choose to turn off any of the above mentioned features.
81
  * Modify auto generated image attributes using the [iaffpro_image_attributes filter](https://imageattributespro.com/codex/iaffpro_image_attributes/?utm_source=github&utm_medium=readme.md).
82
  * Choose specific post types to bulk update using the [iaffpro_included_post_types filter](https://imageattributespro.com/codex/iaffpro_included_post_types/?utm_source=github&utm_medium=readme.md).
83
  * Disable updating of attributes in media library completely using the [iaffpro_update_media_library filter](https://imageattributespro.com/codex/iaffpro_update_media_library/?utm_source=github&utm_medium=readme.md).
84
  * Add or remove custom image attributes using the [iaffpro_html_image_markup_post_update filter](https://imageattributespro.com/codex/iaffpro_html_image_markup_post_update/?utm_source=github&utm_medium=readme.md)
85
 
86
+ Other Image Attributes Pro features:
87
+
88
+ * Bulk Update image attributes from WordPress Media Library. Select images and choose `Update image attributes` Bulk action in Media Library (list view). [Read more.](https://imageattributespro.com/bulk-actions/?utm_source=github&utm_medium=readme.md)
89
+ * Bulk Update image attributes from WordPress admin page for Posts, Pages and WooCommerce Products. Select the posts, pages or WooCommerce products in bulk and choose "Update image attributes" Bulk action. [Read more.](https://imageattributespro.com/bulk-actions/?utm_source=github&utm_medium=readme.md)
90
+
91
  For screenshots, FAQ and further details, please see the [product website](https://imageattributespro.com/?utm_source=github&utm_medium=readme.md).
92
 
93
  ## Installation
admin/iaff_image-attributes-from-filename-admin-setup.php CHANGED
@@ -275,14 +275,14 @@ function iaff_settings_validater_and_sanitizer( $settings ) {
275
  $settings['bu_custom_filter'] = sanitize_text_field( $settings['bu_custom_filter'] );
276
 
277
  // Sanitize Custom Attributes
278
- $settings['custom_attribute_title'] = sanitize_text_field( $settings['custom_attribute_title'] );
279
- $settings['custom_attribute_bu_title'] = sanitize_text_field( $settings['custom_attribute_bu_title'] );
280
- $settings['custom_attribute_alt_text'] = sanitize_text_field( $settings['custom_attribute_alt_text'] );
281
- $settings['custom_attribute_bu_alt_text'] = sanitize_text_field( $settings['custom_attribute_bu_alt_text'] );
282
- $settings['custom_attribute_caption'] = sanitize_text_field( $settings['custom_attribute_caption'] );
283
- $settings['custom_attribute_bu_caption'] = sanitize_text_field( $settings['custom_attribute_bu_caption'] );
284
- $settings['custom_attribute_description'] = sanitize_text_field( $settings['custom_attribute_description'] );
285
- $settings['custom_attribute_bu_description'] = sanitize_text_field( $settings['custom_attribute_bu_description'] );
286
 
287
  // Validating Regex
288
  if( @preg_match( $settings['regex_filter'], null ) === false ) {
@@ -297,6 +297,28 @@ function iaff_settings_validater_and_sanitizer( $settings ) {
297
  return $settings;
298
  }
299
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
300
  /**
301
  * Set global default values for settings
302
  *
@@ -379,9 +401,17 @@ function iaff_custom_attribute_tags() {
379
  'filename' => __( 'Image filename', 'auto-image-attributes-from-filename-with-bulk-updater' ),
380
  'posttitle' => __( 'Title of the post, page or product where the image is used', 'auto-image-attributes-from-filename-with-bulk-updater' ),
381
  'sitetitle' => __( 'Site Title defined in WordPress General Settings', 'auto-image-attributes-from-filename-with-bulk-updater' ),
382
- 'yoastfocuskw' => __( 'Yoast Focus Keyword', 'auto-image-attributes-from-filename-with-bulk-updater' ),
383
- 'rankmathfocuskw' => __( 'Rank Math Focus Keyword', 'auto-image-attributes-from-filename-with-bulk-updater' ),
384
  );
385
 
386
- return $available_tags;
 
 
 
 
 
 
 
 
387
  }
275
  $settings['bu_custom_filter'] = sanitize_text_field( $settings['bu_custom_filter'] );
276
 
277
  // Sanitize Custom Attributes
278
+ $settings['custom_attribute_title'] = iaff_sanitize_text_field( $settings['custom_attribute_title'] );
279
+ $settings['custom_attribute_bu_title'] = iaff_sanitize_text_field( $settings['custom_attribute_bu_title'] );
280
+ $settings['custom_attribute_alt_text'] = iaff_sanitize_text_field( $settings['custom_attribute_alt_text'] );
281
+ $settings['custom_attribute_bu_alt_text'] = iaff_sanitize_text_field( $settings['custom_attribute_bu_alt_text'] );
282
+ $settings['custom_attribute_caption'] = iaff_sanitize_text_field( $settings['custom_attribute_caption'] );
283
+ $settings['custom_attribute_bu_caption'] = iaff_sanitize_text_field( $settings['custom_attribute_bu_caption'] );
284
+ $settings['custom_attribute_description'] = iaff_sanitize_text_field( $settings['custom_attribute_description'] );
285
+ $settings['custom_attribute_bu_description'] = iaff_sanitize_text_field( $settings['custom_attribute_bu_description'] );
286
 
287
  // Validating Regex
288
  if( @preg_match( $settings['regex_filter'], null ) === false ) {
297
  return $settings;
298
  }
299
 
300
+ /**
301
+ * Extend sanitize_text_field() to preserve %category% custom attribute tag.
302
+ *
303
+ * sanitize_text_field() converts %category% to tegory%.
304
+ * Here %category% is replaced with IAFF_CATEGORY_CUSTOM_TAG keyword before sanitization.
305
+ * Then IAFF_CATEGORY_CUSTOM_TAG is replaced with %category% after sanitization.
306
+ *
307
+ * @since 3.1
308
+ *
309
+ * @param (String) $str String to be sanitized.
310
+ *
311
+ * @return (String) Sanitized string with %category% preserved.
312
+ */
313
+ function iaff_sanitize_text_field( $str ) {
314
+
315
+ $str = str_replace( '%category%', 'IAFF_CATEGORY_CUSTOM_TAG', $str );
316
+ $str = sanitize_text_field( $str );
317
+ $str = str_replace( 'IAFF_CATEGORY_CUSTOM_TAG', '%category%', $str );
318
+
319
+ return $str;
320
+ }
321
+
322
  /**
323
  * Set global default values for settings
324
  *
401
  'filename' => __( 'Image filename', 'auto-image-attributes-from-filename-with-bulk-updater' ),
402
  'posttitle' => __( 'Title of the post, page or product where the image is used', 'auto-image-attributes-from-filename-with-bulk-updater' ),
403
  'sitetitle' => __( 'Site Title defined in WordPress General Settings', 'auto-image-attributes-from-filename-with-bulk-updater' ),
404
+ 'category' => __( 'Post or Product Category', 'auto-image-attributes-from-filename-with-bulk-updater' ),
405
+ 'tag' => __( 'Post or Product Tag', 'auto-image-attributes-from-filename-with-bulk-updater' ),
406
  );
407
 
408
+ /**
409
+ * Filter the custom attribute tags.
410
+ * Used by Image Attributes Pro to add custom tags like %yoastfocuskw% and %rankmathfocuskw% dynamically.
411
+ *
412
+ * @since 3.1
413
+ *
414
+ * @param $available_tags (array) Array containing all custom attribute tags.
415
+ */
416
+ return apply_filters( 'iaff_custom_attribute_tags', $available_tags );
417
  }
admin/iaff_image-attributes-from-filename-admin-ui-render.php CHANGED
@@ -1050,13 +1050,21 @@ function iaff_admin_interface_render () {
1050
  <input class="button-secondary iaff-bulk-updater-buttons iaff_stop_bulk_updater_button" type="submit" name="Stop Bulk Updater" value="<?php _e( 'Stop Bulk Updater', 'auto-image-attributes-from-filename-with-bulk-updater' ) ?>" disabled />
1051
  </p>
1052
 
1053
- <h2 class="showh2"><?php _e('Reset Counter', 'auto-image-attributes-from-filename-with-bulk-updater') ?></h2>
1054
 
1055
- <p><?php _e('To restart processing images from the beginning (the oldest upload first), reset the counter.', 'auto-image-attributes-from-filename-with-bulk-updater') ?></p>
1056
-
1057
- <span class="reset-counter-button">
1058
- <?php submit_button( __('Reset Counter', 'auto-image-attributes-from-filename-with-bulk-updater'), 'iaff_reset_counter_button' ); ?>
1059
- </span>
 
 
 
 
 
 
 
 
1060
 
1061
  <!-- Event log -->
1062
  <div id="bulk-updater-results">
1050
  <input class="button-secondary iaff-bulk-updater-buttons iaff_stop_bulk_updater_button" type="submit" name="Stop Bulk Updater" value="<?php _e( 'Stop Bulk Updater', 'auto-image-attributes-from-filename-with-bulk-updater' ) ?>" disabled />
1051
  </p>
1052
 
1053
+ <h2 class="showh2"><?php _e('Tools', 'auto-image-attributes-from-filename-with-bulk-updater') ?></h2>
1054
 
1055
+ <p><?php _e('To restart processing images from the beginning (the oldest upload first), reset the counter.', 'auto-image-attributes-from-filename-with-bulk-updater') ?></p>
1056
+
1057
+ <?php if ( apply_filters( 'iaff_debug_mode', false ) ) { ?>
1058
+ <p><?php printf( __( 'If Bulk Updater is stuck, refresh the page, skip current image and try running the bulk updater again. <a href="%s" target="_blank">Read more.</a>', 'auto-image-attributes-from-filename-with-bulk-updater' ), 'https://imageattributespro.com/fix-bulk-updater-stuck-on-same-image/?utm_source=iaff-basic&utm_medium=skip-image-button' ); ?></p>
1059
+ <?php } ?>
1060
+
1061
+ <p class="submit">
1062
+ <input class="button-secondary iaff-bulk-updater-buttons iaff_reset_counter_button" type="submit" name="Reset Counter" value="<?php _e( 'Reset Counter', 'auto-image-attributes-from-filename-with-bulk-updater' ) ?>" />
1063
+
1064
+ <?php if ( apply_filters( 'iaff_debug_mode', false ) ) { ?>
1065
+ <input class="button-secondary iaff-bulk-updater-buttons iaff_skip_image_button" type="submit" name="Skip Image" value="<?php _e( 'Skip Image', 'auto-image-attributes-from-filename-with-bulk-updater' ) ?>" />
1066
+ <?php } ?>
1067
+ </p>
1068
 
1069
  <!-- Event log -->
1070
  <div id="bulk-updater-results">
admin/iaff_image-attributes-from-filename-do.php CHANGED
@@ -81,9 +81,12 @@ function iaff_rename_old_image() {
81
 
82
  // Image Attributes Pro
83
  if ( iaff_is_pro() ) {
 
 
 
84
 
85
  // Running the pro module
86
- iaffpro_auto_image_attributes_pro($image, true);
87
 
88
  } else {
89
 
@@ -192,6 +195,11 @@ function iaff_before_bulk_updater() {
192
  // Security Check
193
  check_ajax_referer( 'iaff_before_bulk_updater_nonce', 'security' );
194
 
 
 
 
 
 
195
  do_action('iaff_before_bulk_updater');
196
  }
197
  add_action( 'wp_ajax_iaff_before_bulk_updater', 'iaff_before_bulk_updater' );
@@ -206,10 +214,41 @@ function iaff_after_bulk_updater() {
206
  // Security Check
207
  check_ajax_referer( 'iaff_after_bulk_updater_nonce', 'security' );
208
 
 
 
 
 
 
209
  do_action('iaff_after_bulk_updater');
210
  }
211
  add_action( 'wp_ajax_iaff_after_bulk_updater', 'iaff_after_bulk_updater');
212
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
  /**
214
  * Bulk Updater Ajax
215
  *
@@ -396,6 +435,21 @@ function iaff_image_bulk_updater() {
396
  });
397
  $('#iaff-reset-counter-dialog').dialog('open');
398
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
399
 
400
  });
401
  </script> <?php
81
 
82
  // Image Attributes Pro
83
  if ( iaff_is_pro() ) {
84
+
85
+ // Get the object of the image form image ID.
86
+ $image_object = get_post( $image->ID );
87
 
88
  // Running the pro module
89
+ iaffpro_auto_image_attributes_pro( $image_object, true );
90
 
91
  } else {
92
 
195
  // Security Check
196
  check_ajax_referer( 'iaff_before_bulk_updater_nonce', 'security' );
197
 
198
+ /**
199
+ * Action hook that is fired at the start of the Bulk Updater before updating any image.
200
+ *
201
+ * @link https://imageattributespro.com/codex/iaff_before_bulk_updater/
202
+ */
203
  do_action('iaff_before_bulk_updater');
204
  }
205
  add_action( 'wp_ajax_iaff_before_bulk_updater', 'iaff_before_bulk_updater' );
214
  // Security Check
215
  check_ajax_referer( 'iaff_after_bulk_updater_nonce', 'security' );
216
 
217
+ /**
218
+ * Action hook that is fired at the end of the Bulk Updater after updating all images.
219
+ *
220
+ * @link https://imageattributespro.com/codex/iaff_after_bulk_updater/
221
+ */
222
  do_action('iaff_after_bulk_updater');
223
  }
224
  add_action( 'wp_ajax_iaff_after_bulk_updater', 'iaff_after_bulk_updater');
225
 
226
+ /**
227
+ * Increment the counter by one to skip one image.
228
+ *
229
+ * @since 3.1
230
+ */
231
+ function iaff_bulk_updater_skip_image() {
232
+
233
+ // Security Check
234
+ check_ajax_referer( 'iaff_bulk_updater_skip_image_nonce', 'security' );
235
+
236
+ // Retrieve Counter
237
+ $counter = get_option( 'iaff_bulk_updater_counter' );
238
+ $counter = intval ( $counter );
239
+
240
+ // Increment counter and update it
241
+ $counter++;
242
+ update_option( 'iaff_bulk_updater_counter', $counter );
243
+
244
+ $response = array(
245
+ 'message' => __( 'One image skipped.', 'auto-image-attributes-from-filename-with-bulk-updater' ),
246
+ 'remaining_images' => iaff_count_remaining_images( true ),
247
+ );
248
+ wp_send_json( $response );
249
+ }
250
+ add_action( 'wp_ajax_iaff_bulk_updater_skip_image', 'iaff_bulk_updater_skip_image' );
251
+
252
  /**
253
  * Bulk Updater Ajax
254
  *
435
  });
436
  $('#iaff-reset-counter-dialog').dialog('open');
437
  });
438
+
439
+ // Skip Image Button
440
+ $('.iaff_skip_image_button').click( function() {
441
+
442
+ data = {
443
+ action: 'iaff_bulk_updater_skip_image',
444
+ security: '<?php echo wp_create_nonce( "iaff_bulk_updater_skip_image_nonce" ); ?>'
445
+ };
446
+
447
+ $.post(ajaxurl, data, function (response) {
448
+ $('#bulk-updater-log').append('<p class="iaff-green"><span class="dashicons dashicons-yes"></span>' + response.message + '</p>');
449
+ $('#bulk-updater-log').append('<p>Number of Images Remaining: ' + response.remaining_images + '</p>');
450
+ $("#bulk-updater-log").animate({scrollTop:$("#bulk-updater-log")[0].scrollHeight - $("#bulk-updater-log").height()},200);
451
+ });
452
+ });
453
 
454
  });
455
  </script> <?php
iaff_image-attributes-from-filename.php CHANGED
@@ -5,7 +5,7 @@
5
  * Description: Automatically Add Image Title, Image Caption, Description And Alt Text From Image Filename. Since this plugin includes a bulk updater this can update both existing images in the Media Library and new images.
6
  * Author: Arun Basil Lal
7
  * Author URI: https://imageattributespro.com/?utm_source=plugin-header&utm_medium=author-uri
8
- * Version: 3.0
9
  * Text Domain: auto-image-attributes-from-filename-with-bulk-updater
10
  * Domain Path: /languages
11
  * License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
@@ -67,7 +67,7 @@ if ( ! defined( 'IAFF_IMAGE_ATTRIBUTES_FROM_FILENAME_URL' ) ) {
67
  * @since 1.3
68
  */
69
  if ( ! defined( 'IAFF_VERSION_NUM' ) ) {
70
- define( 'IAFF_VERSION_NUM', '3.0' );
71
  }
72
 
73
  /**
5
  * Description: Automatically Add Image Title, Image Caption, Description And Alt Text From Image Filename. Since this plugin includes a bulk updater this can update both existing images in the Media Library and new images.
6
  * Author: Arun Basil Lal
7
  * Author URI: https://imageattributespro.com/?utm_source=plugin-header&utm_medium=author-uri
8
+ * Version: 3.1
9
  * Text Domain: auto-image-attributes-from-filename-with-bulk-updater
10
  * Domain Path: /languages
11
  * License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
67
  * @since 1.3
68
  */
69
  if ( ! defined( 'IAFF_VERSION_NUM' ) ) {
70
+ define( 'IAFF_VERSION_NUM', '3.1' );
71
  }
72
 
73
  /**
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: arunbasillal
3
  Donate link: https://imageattributespro.com/?utm_source=wordpress.org&utm_medium=donate-link
4
  Tags: image title, image caption, image description, alt text, bulk edit images, bulk rename images, auto image attributes, auto image alt text, remove underscores, image seo
5
  Requires at least: 3.5.0
6
- Tested up to: 5.8.3
7
  Stable tag: trunk
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -71,7 +71,7 @@ The pro add-on can update the image attributes from not just the image filename,
71
  * Use post title as alt text. If image is not attached to a post, image filename will be used instead.
72
  * Use post title as caption. If image is not attached to a post, image filename will be used instead.
73
  * Use post title as description. If image is not attached to a post, image filename will be used instead.
74
- * Build your own attributes using custom tags like `%filename%`, `%posttitle%`, `%sitetitle%`, `%yoastfocuskw%`, `%rankmathfocuskw%`. Each custom tag will be replaced with it's value. You can combine them as you please!
75
  * Use Yoast Focus Keyword and Rank Math Focus Keyword as image attributes.
76
  * Clear any image attribute by setting it as blank / empty.
77
  * Exclude images from Bulk Updater. A meta box and a checkbox is added to the `Media Library` > `Edit Media` sidebar. When checked, the bulk updater will not update the attributes of that image in the media library or in posts / products where the image is used.
@@ -92,7 +92,7 @@ The pro add-on can update the image attributes from not just the image filename,
92
  * Clean the actual image filename after upload.
93
  * Choose to turn off any of the above mentioned features.
94
 
95
- **With the pro bulk updater you can:**
96
 
97
  * Update image title and alt text **for images inserted into posts and custom post types**. Not just the media library. [What is the difference?](https://imageattributespro.com/how-wordpress-store-image-attributes/?utm_source=wordpress.org&utm_medium=readme)
98
  * Fine tune all settings. Choose what to update.
@@ -100,13 +100,18 @@ The pro add-on can update the image attributes from not just the image filename,
100
  * Update image titles / alt text in media library and existing posts.
101
  * Update image titles / alt text in media library and existing posts only if no title / alt text is set. Existing image titles / alt text will not be changed.
102
  * Update image caption and description in the media library. Existing image captions and descriptions can be preserved.
103
- * Build your own attributes using custom tags like `%filename%`, `%posttitle%`, `%sitetitle%`, `%yoastfocuskw%`, `%rankmathfocuskw%`. Each custom tag will be replaced with it's value. You can combine them as you please!
104
  * Choose to turn off any of the above mentioned features.
105
  * Modify auto generated image attributes using the [iaffpro_image_attributes filter](https://imageattributespro.com/codex/iaffpro_image_attributes/?utm_source=wordpress.org&utm_medium=readme).
106
  * Choose specific post types to bulk update using the [iaffpro_included_post_types filter](https://imageattributespro.com/codex/iaffpro_included_post_types/?utm_source=wordpress.org&utm_medium=readme).
107
  * Disable updating of attributes in media library completely using the [iaffpro_update_media_library filter](https://imageattributespro.com/codex/iaffpro_update_media_library/?utm_source=wordpress.org&utm_medium=readme).
108
  * Add or remove custom image attributes using the [iaffpro_html_image_markup_post_update filter](https://imageattributespro.com/codex/iaffpro_html_image_markup_post_update/?utm_source=wordpress.org&utm_medium=readme)
109
 
 
 
 
 
 
110
  For screenshots, FAQ and full list of features, please see the [product website](https://imageattributespro.com/?utm_source=wordpress.org&utm_medium=readme).
111
 
112
  > **No Competitors**
@@ -144,38 +149,44 @@ I am glad to hear that! You can either [upgrade to pro](https://imageattributesp
144
 
145
  == Changelog ==
146
 
 
 
 
 
 
 
147
  = 3.0 =
148
- * Date: 19.January.2022
149
  * Tested with WordPress 5.8.3.
150
  * Enhancement: Removed "Global Switch" option as part of cleaning up the user interface. This option was redundant and the same can be accomplished either by deactivating the plugin or by disabling every option in "General Settings". Please take a note of this change if you have disabled "Global Switch" on your website.
151
  * UI Enhancement: Added description text to clarity settings to improve usability.
152
  * UI Enhancement: Added [demo video link](https://imageattributespro.com/demo/?utm_source=wordpress.org&utm_medium=changelog) in plugin settings page.
153
 
154
  = 2.1 =
155
- * Date: 02.July.2021
156
  * Enhancement: Compatibility with Image Attributes Pro v2.0.
157
 
158
  = 2.0 =
159
- * Date: 18.June.2021
160
  * Tested with WordPress 5.7.2.
161
  * UI Enhancement: Changed order of `General Settings` to match the order in `Media Library`.
162
  * UI Enhancement: Changed the word `attached` to `uploaded` in `If image is not attached to a post, image filename will be used instead` for better clarity.
163
  * I18n: More strings are now translation ready, thanks to [@alexclassroom](https://profiles.wordpress.org/alexclassroom/).
164
 
165
  = 1.6 =
166
- * Date: 06.January.2019
167
  * Tested with WordPress 5.0.2.
168
  * Enhancement: Improved bulk updater warning and inline documentation.
169
  * Bug Fix: Fixed a bug that ignored the setting for inserting image title into the post HTML. Thanks [@jamesryancooper](https://wordpress.org/support/topic/image-title-being-inserted-even-with-checkbox-unselected/)
170
 
171
  = 1.5 =
172
- * Date: 06.May.2018
173
  * Enhancement: Changed text domain from abl_iaff_td to auto-image-attributes-from-filename-with-bulk-updater to make the plugin translation ready in translate.wordpress.org.
174
  * Enhancement: Code improvements.
175
  * Enhancement: Added an activation notice with link to the settings page for better on-boarding experience.
176
 
177
  = 1.4 =
178
- * Date: 22.November.2017
179
  * NEW: Global switch to enable or disable the plugin.
180
  * NEW: Test button.
181
  * NEW: Stop Bulk Updater button.
@@ -188,7 +199,7 @@ I am glad to hear that! You can either [upgrade to pro](https://imageattributesp
188
  * Code improvements.
189
 
190
  = 1.3 =
191
- * Date: 17.August.2017
192
  * Improved the architecture of the plugin laying foundation for future updates. Utilizing my [starter plugin framework](http://millionclues.com/lab/wordpress-starter-plugin-a-framework-for-quick-plugin-development/)
193
  * Bug fix: For images that had EXIF data, EXIF data was used instead of filename. Props to @mathieupellegrin for reporting this.
194
  * NEW: Added option to Insert Image Title into HTML. WordPress stopped including image titles since 3.5. Code from [Restore Image Title](https://wordpress.org/plugins/restore-image-title/) plugin was used.
@@ -202,29 +213,35 @@ I am glad to hear that! You can either [upgrade to pro](https://imageattributesp
202
  * Tested on WordPress 4.8.1. Result = pass.
203
 
204
  = 1.2 =
205
- * Date: 15.July.2017
206
  * Added: Character filter options. Plugin now removes hyphens and underscores.
207
  * Bug Fix: Minor bug fix.
208
 
209
  = 1.1 =
210
- * Date: 4.July.2017
211
  * Added: Options to choose individual image attributes for NEW uploads.
212
 
213
  = 1.0 =
214
- * Date: 4.July.2017
215
  * First release of the plugin.
216
 
217
  == Upgrade Notice ==
218
 
 
 
 
 
 
 
219
  = 3.0 =
220
- * Date: 19.January.2022
221
  * Tested with WordPress 5.8.3.
222
  * Enhancement: Removed "Global Switch" option as part of cleaning up the user interface. This option was redundant and the same can be accomplished either by deactivating the plugin or by disabling every option in "General Settings". Please take a note of this change if you have disabled "Global Switch" on your website.
223
  * UI Enhancement: Added description text to clarity settings to improve usability.
224
  * UI Enhancement: Added [demo video link](https://imageattributespro.com/demo/?utm_source=wordpress.org&utm_medium=changelog) in plugin settings page.
225
 
226
  = 2.1 =
227
- * Date: 02.July.2021
228
  * Enhancement: Compatibility with Image Attributes Pro v2.0.
229
 
230
  = 2.0 =
@@ -244,7 +261,7 @@ I am glad to hear that! You can either [upgrade to pro](https://imageattributesp
244
  * Enhancement: Added an activation notice with link to the settings page for better on-boarding experience.
245
 
246
  = 1.4 =
247
- * Date: 22.November.2017
248
  * NEW: Global switch to enable or disable the plugin.
249
  * NEW: Test button.
250
  * NEW: Stop Bulk Updater button.
3
  Donate link: https://imageattributespro.com/?utm_source=wordpress.org&utm_medium=donate-link
4
  Tags: image title, image caption, image description, alt text, bulk edit images, bulk rename images, auto image attributes, auto image alt text, remove underscores, image seo
5
  Requires at least: 3.5.0
6
+ Tested up to: 5.9.2
7
  Stable tag: trunk
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
71
  * Use post title as alt text. If image is not attached to a post, image filename will be used instead.
72
  * Use post title as caption. If image is not attached to a post, image filename will be used instead.
73
  * Use post title as description. If image is not attached to a post, image filename will be used instead.
74
+ * Build your own attributes using custom tags like `%filename%`, `%posttitle%`, `%sitetitle%`, `%category%`, `%tag%`, `%yoastfocuskw%`, `%rankmathfocuskw%`, `%seopresstargetkw%`. Each custom tag will be replaced with it's value. You can combine them as you please!
75
  * Use Yoast Focus Keyword and Rank Math Focus Keyword as image attributes.
76
  * Clear any image attribute by setting it as blank / empty.
77
  * Exclude images from Bulk Updater. A meta box and a checkbox is added to the `Media Library` > `Edit Media` sidebar. When checked, the bulk updater will not update the attributes of that image in the media library or in posts / products where the image is used.
92
  * Clean the actual image filename after upload.
93
  * Choose to turn off any of the above mentioned features.
94
 
95
+ **With the Image Attributes Pro bulk updater you can:**
96
 
97
  * Update image title and alt text **for images inserted into posts and custom post types**. Not just the media library. [What is the difference?](https://imageattributespro.com/how-wordpress-store-image-attributes/?utm_source=wordpress.org&utm_medium=readme)
98
  * Fine tune all settings. Choose what to update.
100
  * Update image titles / alt text in media library and existing posts.
101
  * Update image titles / alt text in media library and existing posts only if no title / alt text is set. Existing image titles / alt text will not be changed.
102
  * Update image caption and description in the media library. Existing image captions and descriptions can be preserved.
103
+ * Build your own attributes using custom tags like `%filename%`, `%posttitle%`, `%sitetitle%`, `%category%`, `%tag%`, `%yoastfocuskw%`, `%rankmathfocuskw%`, `%seopresstargetkw%`. Each custom tag will be replaced with it's value. You can combine them as you please!
104
  * Choose to turn off any of the above mentioned features.
105
  * Modify auto generated image attributes using the [iaffpro_image_attributes filter](https://imageattributespro.com/codex/iaffpro_image_attributes/?utm_source=wordpress.org&utm_medium=readme).
106
  * Choose specific post types to bulk update using the [iaffpro_included_post_types filter](https://imageattributespro.com/codex/iaffpro_included_post_types/?utm_source=wordpress.org&utm_medium=readme).
107
  * Disable updating of attributes in media library completely using the [iaffpro_update_media_library filter](https://imageattributespro.com/codex/iaffpro_update_media_library/?utm_source=wordpress.org&utm_medium=readme).
108
  * Add or remove custom image attributes using the [iaffpro_html_image_markup_post_update filter](https://imageattributespro.com/codex/iaffpro_html_image_markup_post_update/?utm_source=wordpress.org&utm_medium=readme)
109
 
110
+ **Other Image Attributes Pro features:**
111
+
112
+ * Bulk Update image attributes from WordPress Media Library. Select images and choose `Update image attributes` Bulk action in Media Library (list view). [Read more.](https://imageattributespro.com/bulk-actions/?utm_source=wordpress.org&utm_medium=readme)
113
+ * Bulk Update image attributes from WordPress admin page for Posts, Pages and WooCommerce Products. Select the posts, pages or WooCommerce products in bulk and choose "Update image attributes" Bulk action. [Read more.](https://imageattributespro.com/bulk-actions/?utm_source=wordpress.org&utm_medium=readme)
114
+
115
  For screenshots, FAQ and full list of features, please see the [product website](https://imageattributespro.com/?utm_source=wordpress.org&utm_medium=readme).
116
 
117
  > **No Competitors**
149
 
150
  == Changelog ==
151
 
152
+ = 3.1 =
153
+ * Date: 24.March.2022.
154
+ * Tested with WordPress 5.9.2.
155
+ * New Feature: Added 'Skip Image' button for the Bulk Updater. Useful during troubleshooting. [Read more.](https://imageattributespro.com/fix-bulk-updater-stuck-on-same-image/?utm_source=wordpress.org&utm_medium=changelog)
156
+ * Enhancement: Compatibility with Image Attributes Pro version 3.0. [Check what's new in 3.0.](https://imageattributespro.com/changelog/?utm_source=wordpress.org&utm_medium=changelog)
157
+
158
  = 3.0 =
159
+ * Date: 19.January.2022.
160
  * Tested with WordPress 5.8.3.
161
  * Enhancement: Removed "Global Switch" option as part of cleaning up the user interface. This option was redundant and the same can be accomplished either by deactivating the plugin or by disabling every option in "General Settings". Please take a note of this change if you have disabled "Global Switch" on your website.
162
  * UI Enhancement: Added description text to clarity settings to improve usability.
163
  * UI Enhancement: Added [demo video link](https://imageattributespro.com/demo/?utm_source=wordpress.org&utm_medium=changelog) in plugin settings page.
164
 
165
  = 2.1 =
166
+ * Date: 02.July.2021.
167
  * Enhancement: Compatibility with Image Attributes Pro v2.0.
168
 
169
  = 2.0 =
170
+ * Date: 18.June.2021.
171
  * Tested with WordPress 5.7.2.
172
  * UI Enhancement: Changed order of `General Settings` to match the order in `Media Library`.
173
  * UI Enhancement: Changed the word `attached` to `uploaded` in `If image is not attached to a post, image filename will be used instead` for better clarity.
174
  * I18n: More strings are now translation ready, thanks to [@alexclassroom](https://profiles.wordpress.org/alexclassroom/).
175
 
176
  = 1.6 =
177
+ * Date: 06.January.2019.
178
  * Tested with WordPress 5.0.2.
179
  * Enhancement: Improved bulk updater warning and inline documentation.
180
  * Bug Fix: Fixed a bug that ignored the setting for inserting image title into the post HTML. Thanks [@jamesryancooper](https://wordpress.org/support/topic/image-title-being-inserted-even-with-checkbox-unselected/)
181
 
182
  = 1.5 =
183
+ * Date: 06.May.2018.
184
  * Enhancement: Changed text domain from abl_iaff_td to auto-image-attributes-from-filename-with-bulk-updater to make the plugin translation ready in translate.wordpress.org.
185
  * Enhancement: Code improvements.
186
  * Enhancement: Added an activation notice with link to the settings page for better on-boarding experience.
187
 
188
  = 1.4 =
189
+ * Date: 22.November.2017.
190
  * NEW: Global switch to enable or disable the plugin.
191
  * NEW: Test button.
192
  * NEW: Stop Bulk Updater button.
199
  * Code improvements.
200
 
201
  = 1.3 =
202
+ * Date: 17.August.2017.
203
  * Improved the architecture of the plugin laying foundation for future updates. Utilizing my [starter plugin framework](http://millionclues.com/lab/wordpress-starter-plugin-a-framework-for-quick-plugin-development/)
204
  * Bug fix: For images that had EXIF data, EXIF data was used instead of filename. Props to @mathieupellegrin for reporting this.
205
  * NEW: Added option to Insert Image Title into HTML. WordPress stopped including image titles since 3.5. Code from [Restore Image Title](https://wordpress.org/plugins/restore-image-title/) plugin was used.
213
  * Tested on WordPress 4.8.1. Result = pass.
214
 
215
  = 1.2 =
216
+ * Date: 15.July.2017.
217
  * Added: Character filter options. Plugin now removes hyphens and underscores.
218
  * Bug Fix: Minor bug fix.
219
 
220
  = 1.1 =
221
+ * Date: 4.July.2017.
222
  * Added: Options to choose individual image attributes for NEW uploads.
223
 
224
  = 1.0 =
225
+ * Date: 4.July.2017.
226
  * First release of the plugin.
227
 
228
  == Upgrade Notice ==
229
 
230
+ = 3.1 =
231
+ * Date: 24.March.2022.
232
+ * Tested with WordPress 5.9.2.
233
+ * New Feature: Added 'Skip Image' button for the Bulk Updater. Useful during troubleshooting. [Read more.](https://imageattributespro.com/fix-bulk-updater-stuck-on-same-image/?utm_source=wordpress.org&utm_medium=changelog)
234
+ * Enhancement: Compatibility with Image Attributes Pro version 3.0. [Check what's new in 3.0.](https://imageattributespro.com/changelog/?utm_source=wordpress.org&utm_medium=changelog)
235
+
236
  = 3.0 =
237
+ * Date: 19.January.2022.
238
  * Tested with WordPress 5.8.3.
239
  * Enhancement: Removed "Global Switch" option as part of cleaning up the user interface. This option was redundant and the same can be accomplished either by deactivating the plugin or by disabling every option in "General Settings". Please take a note of this change if you have disabled "Global Switch" on your website.
240
  * UI Enhancement: Added description text to clarity settings to improve usability.
241
  * UI Enhancement: Added [demo video link](https://imageattributespro.com/demo/?utm_source=wordpress.org&utm_medium=changelog) in plugin settings page.
242
 
243
  = 2.1 =
244
+ * Date: 02.July.2021.
245
  * Enhancement: Compatibility with Image Attributes Pro v2.0.
246
 
247
  = 2.0 =
261
  * Enhancement: Added an activation notice with link to the settings page for better on-boarding experience.
262
 
263
  = 1.4 =
264
+ * Date: 22.November.2017.
265
  * NEW: Global switch to enable or disable the plugin.
266
  * NEW: Test button.
267
  * NEW: Stop Bulk Updater button.