Yoast网站地图由于脚本标记而损坏

时间:2019-02-02 00:17:05

标签: wordpress plugins yoast

Yoast SEO访问其站点地图时返回错误。文件page-sitemap.xml表示“第2列第1行的错误:文档末尾的多余内容”

我将问题归结为在声明上方引用了四个JavaScript。所以,我们看到

<script type='text/javascript' src='https://www.example.com/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script>
<script type='text/javascript' src='https://www.example.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script>
<script type='text/javascript' src='https://www.example.com/wp-content/plugins/imPower-weight-loss-tools/js/jquery.tools.min.js?ver=5.0.3'></script>
<script type='text/javascript' src='https://www.example.com/wp-content/plugins/imPower-weight-loss-tools/js/jquery-ui.js?ver=5.0.3'></script>
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//www.example.com/wp-content/plugins/wordpress-seo/css/main-sitemap.xsl"?>

不仅仅是简单地

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//www.example.com/wp-content/plugins/wordpress-seo/css/main-sitemap.xsl"?>

作为文件的开头。

我可以通过哪些方式删除这些脚本标签,以便Yoast的page-sitemap.xml文件可以验证?

1 个答案:

答案 0 :(得分:0)

更新:我认为以下内容有效,但这不是由于我遇到的其他情况。当条件改变时,它不再起作用。我已将此问题作为一个单独的问题进行了解答,并提供了更好的信息in a separate question here

add_action( 'wp_enqueue_scripts', 'defer_jquery_for_sitemap', 100 );
function defer_jquery_for_sitemap() {
    $url = $_SERVER["REQUEST_URI"];
    $isItSitemap = strpos($url, 'sitemap');
    if ($isItSitemap==false) {
        wp_script_add_data( 'jquery-core', 'async/defer' , true );
        wp_script_add_data( 'jquery-migrate', 'async/defer' , true );
    }
}