- 状态
- 已解决
- 报告针对
- WPML SEO 2.1.0
- 解决于
- 2.2.0
- 相关插件/主题
- Rank Math SEO
- 主题标签
- Compatibility
问题概述
由 Rank Math SEO 插件提供的 rank_math_html_sitemap 简码正在显示包含所有语言页面的 HTML 站点地图,而不是仅显示当前语言的内容。
临时解决方法
在继续操作之前,请确保对您的网站进行完整备份。
- 打开 …/wp-content/plugins/seo-by-rank-math/includes/modules/sitemap/html-sitemap/class-posts.php 文件。
- 找到第 88 行。
- 将:
$sql = " SELECT l.ID, post_title, post_name, post_parent, post_date, post_type, l.post_modified FROM ( SELECT DISTINCT p.ID, p.post_modified FROM {$wpdb->posts} as p LEFT JOIN {$wpdb->postmeta} AS pm ON ( p.ID = pm.post_id AND pm.meta_key = 'rank_math_robots' ) WHERE ( ( pm.meta_key = 'rank_math_robots' AND pm.meta_value NOT LIKE '%noindex%' ) OR pm.post_id IS NULL ) AND p.post_type IN ( '" . $post_type . "' ) AND p.post_status IN ( '" . join( "', '", esc_sql( $statuses ) ) . "' ) ORDER BY p.post_modified DESC ) o JOIN {$wpdb->posts} l ON l.ID = o.ID " . $get_child . " ORDER BY " . $sort['field'] . " " . $sort['order']; // phpcs:ignore return $wpdb->get_results( $wpdb->prepare( $sql ) ); // phpcs:ignore - 更改为:
$current_language = apply_filters( 'wpml_current_language', NULL ); $sql = " SELECT l.ID, post_title, post_name, post_parent, post_date, post_type, l.post_modified FROM ( SELECT DISTINCT p.ID, p.post_modified FROM {$wpdb->posts} as p LEFT JOIN {$wpdb->postmeta} AS pm ON ( p.ID = pm.post_id AND pm.meta_key = 'rank_math_robots' ) INNER JOIN {$wpdb->prefix}icl_translations AS icl ON ( p.ID = icl.element_id AND icl.language_code = %s AND icl.element_type LIKE 'post_%' ) WHERE ( ( pm.meta_key = 'rank_math_robots' AND pm.meta_value NOT LIKE '%noindex%' ) OR pm.post_id IS NULL ) AND p.post_type IN ( %s ) AND p.post_status IN ( '" . join( "', '", esc_sql( $statuses ) ) . "' ) ORDER BY p.post_modified DESC ) o JOIN {$wpdb->posts} l ON l.ID = o.ID " . $get_child . " ORDER BY " . $sort['field'] . " " . $sort['order']; // phpcs:ignore $sql = $wpdb->prepare($sql, $current_language, $post_type); return $wpdb->get_results( $sql ); // phpcs:ignore
请注意,您可能需要重置站点地图。您可以通过前往 Rank Math SEO > Sitemaps settings,修改一项设置并再次将其改回来完成此操作。