Mystique主题与WP-PostViews Plus插件的冲突问题

2 月 17th, 2010 | Posted by | Filed under 程序设计

本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.penglixun.com/tech/program/mystique_postviews.html

今天升级了Mystique主题到1.72版,原来的那个Bug又出现了,会在页面的顶头显示一段代码,查看了源码,发现是WP-PostViews Plus的代码和Mystique主题冲突了,我们来看原始输出的HTML

 
/*  
 
home blog col-2-right loggedin browser-chrome">

这不出问题才怪呢,正常的情况应该是

 
 
 

或者在上面。

刨根问底,元凶指向mystique_body_class这个函数,发现在core.php文件中。
问题在哪呢?

// Special classes for BODY element when a single post
  if (is_single()):
    $postID = $wp_query->post->ID;
    the_post();
    // Adds 'single' class and class with the post ID
    $c[] = 'single-post postid-' . $postID;
......
  // And tada!
  return $print ? print($c) : $c;

就是the_post()函数,调用the_post()时,WP-PostViews Plus的代码就被加入了,而body class= 已经输出了。
解决方法很简单,把the_post()转移到最后,就是print的下一行,这样就OK了。把这个函数里其他the_post()都删除,留一个在print的下一行就行。

标签:
  1. lee
    9 月 7th, 201018:15

    博主你好。我用的是Emperors Theme主题,也和这个插件相冲突,麻烦指点一下如何修改。俺菜鸟一只。麻烦了。谢谢。

    [回复]