好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

wordpress博客feed页面报错解决办法 - WordPress

wordpress博客feed页面报错解决办法

google chrome报的错误如下:

This page contains the following errors:

error on line 4 at column 6: XML declaration allowed only at the start of the document

Below is a rendering of the page up to the first error.

 

翻译过来的错误就是:xml文档申明只能在文档的开头部分。

于是我点开chrome的源文件看了,奇怪的是文档最上面有了三个空行,xml的文档是从第四行才开始出现的,难怪会报错的。

整理插件: 一开始我以为是最近新装的一些插件的问题,于是乎我跑到后台,禁用了无觅、多说等插件,回头发现这个空行依旧存在,一怒之下我一个一个插件禁用测试,后来发现依旧无法解决。

搜索解决方案: 百度这个错误找了半天也没啥内容(这也正应了百度搜索不出东西的说法),google之后,在wordpress论坛发现了一个相似的问题,只不过那个作者报错的是第2行,我是第四行。按照下面的说法,下载了一位大神提供的fix-rss-feed的插件,该插件都已经更新到3.1版本了。抱着极大的希望,装好后得到了极大的失望。看来还不是这个问题啊。

自己动手,丰衣足食: 无奈之下,我只得自己一步一步调试了,先从index.php开始,用echo 'test'来进行测试,看看test出现的是在三个空行的上面还是下面,直到我一路跟踪到wp-setting.php中下面这段代码时候,echo 'test' 在前后的内容不一样了:

// Load the functions for the active theme, for both parent and child theme if applicable.      if  ( ! defined(  'WP_INSTALLING'  ) ||  'wp-activate.php'  ===  $pagenow  ) {          if  ( TEMPLATEPATH !== STYLESHEETPATH &&  file_exists ( STYLESHEETPATH .  '/functions.php'  ) )               include ( STYLESHEETPATH .  '/functions.php'  );               if  (  file_exists ( TEMPLATEPATH .  '/functions.php'  ) )      include ( TEMPLATEPATH .  '/functions.php'  );   }  

如果你懂php就能直到上述部分载入了主题下的funcitons.php页面,因此我们可以断定问题就出在这里了,转到主题的functions.php中,我们可以发现有这样一段代码:

echo   "</div>n" ;     }      }  ?>      <?php        //移去头部不需要的代码         remove_action( 'wp_head' ,  'rsd_link' );        remove_action( 'wp_head' ,  'wlwmanifest_link' );      remove_action( 'wp_head' ,  'wp_generator' );     remove_action( 'wp_head' ,  'start_post_rel_link' );  

移去头部不需要的代码是我从我爱水煮鱼的博客找到去除博客头部一些无用信息的,但是加了一个php的开始符,而这段代码与上一段代码之间,刚好就有了三行的空白,原来问题在这里!

总结: 从wp-setting.php中就可以看出wordpress中主题的functions.php的层级还是蛮高的,因为主题在很多页面中不一定会展示出来,但是里面用到的一些钩子,和一些非显示元素的改变则需要这个文件来支撑.

查看更多关于wordpress博客feed页面报错解决办法 - WordPress的详细内容...

  阅读:78次