PluginProbe
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO / 2.8.0
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO v2.8.0
2.8.0 2.7.0 2.6.0 2.5.0 2.4.0 2.3.0 2.2.0 2.1.1 2.1.0 2.0.2 2.0.1 2.0.0 1.32.0 1.31.0 1.30.0 1.29.0 1.28.0 1.27.0 1.26.0 1.25.0 trunk 1.0.0 1.0.1 1.0.2 1.1.0 All 49 releases
← All changes | includes/seo/class-image-seo-manager.php +12 -3 2.0.12.8.0 View file →
@@ -455,9 +455,14 @@
455 455 private function generate_attribute_value(string $format, int $attachment_id, int $post_id, int $count, string $src): string {
456 456 $replacements = [
457 457 '%site_title%' => get_bloginfo('name'),
458 458 '%sitename%' => get_bloginfo('name'),
459 - '%title%' => $post_id > 0 ? get_the_title($post_id) : get_bloginfo('name'),
459 + // Empty, not the site name. The segment collapsing below drops an
460 + // unresolved token together with its separator, and the default
461 + // title_format already ends in %sitename% — substituting the site
462 + // name here printed it twice ("Site Name | Site Name") on every
463 + // image processed outside the loop (widgets, page builders, FSE).
464 + '%title%' => $post_id > 0 ? get_the_title($post_id) : '',
460 465 '%count%' => (string) $count,
461 466 '%filename%' => '',
462 467 '%image_title%' => '',
463 468 '%image_caption%' => '',
@@ -656,8 +661,9 @@
656 661 'offset' => $offset,
657 662 'fields' => 'ids',
658 663 'orderby' => 'ID',
659 664 'order' => 'ASC',
665 + // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.SuppressFilters_suppress_filters -- The pager must walk the same unfiltered set count_images() counts, or it can never reach the total (#322).
660 666 'suppress_filters' => true,
661 667 ]);
662 668
663 669 $updated = 0;
@@ -799,8 +805,11 @@
799 805 * @since 1.19.1
800 806 * @return void
801 807 */
802 808 private function flush_analyzer_cache(): void {
803 - // Matches SEO_Analyzer::CACHE_KEY.
804 - delete_transient('thinkrank_site_seo_analysis');
809 + // Ask the analyzer rather than duplicating its transient key here — the
810 + // literal drifted out of sync the moment anyone renamed it.
811 + if (class_exists('ThinkRank\\SEO\\SEO_Analyzer')) {
812 + (new SEO_Analyzer())->flush_cache();
813 + }
805 814 }
806 815 }