V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
feiyuanqiu
V2EX  ›  PHP

wordpress 遇到一个诡异的问题,求助

  •  
  •   feiyuanqiu · 2014-12-30 11:22:36 +08:00 · 3157 次点击
    这是一个创建于 3643 天前的主题,其中的信息可能已经有所发展或是发生改变。

    wp 版本是 WordPress 3.2.1

    我在后台设置的站点URL是 salewiki.xxx.com
    但是首页文章的链接却是 saleservice.xxx.com

    一直追到 wp-db.php::query() 方法里,这个 mysql_fetch_object 函数:

    pic1

    如图:
    当我把 siteurl 设置为 salewiki.xxx.com 的时候, mysql_fetch_object 拿到的却是 saleservice.xxx.com:

    这是数据库的数据:
    pic2

    这是 var_dump 出来的 mysql_fetch_object 拿到的数据:
    pic3

    然后我把 siteurl 改成另一个值:

    这是数据库的数据:
    pic4

    这是 var_dump 出来的 mysql_fetch_object 拿到的数据:
    pic5

    这次就拿到的数据就是对的了。

    这是我的 host 配置:

    127.0.0.1           salewiki.xxxxx.com
    #127.0.0.1           saleservice.xxxx.com
    
    第 1 条附言  ·  2014-12-30 16:46:54 +08:00
    找到原因了:

    之前有个人图省事,直接在 /wp-blog-header.php 文件开头搞了这么一句:

    ob_start('getHtml');

    然后 getHtml 函数里面是这样的:

    $html = str_replace('wiki.xxx.com','service.xxx.com',$html);

    ... ... ...

    其实早应该往这方面想的,只有表里面存 wiki 的时候数据才会被替换,这已经是个很明显的信号了。

    之前还以为找到了个 mysql_query 的bug,然后思路就被误导了,一边忙需求一边在内核源码上看了半天,真是糊涂。
    5 条回复    2014-12-30 13:42:33 +08:00
    kmvan
        1
    kmvan  
       2014-12-30 11:31:56 +08:00
    WordPress 3.2.1??好老的版本……
    feiyuanqiu
        2
    feiyuanqiu  
    OP
       2014-12-30 11:38:11 +08:00
    @kmvan 是的,公司内部用的一个东西,很早就之前就没维护了,最近想起来了让我接手改一改,wp 我不熟悉,开始还以为是缓存什么的原因,最后发现居然在最底层就出问题了...我再去搜索一下看看能不能找到原因
    jerry2014
        3
    jerry2014  
       2014-12-30 13:21:19 +08:00
    是不是post_link加过什么filter
    yylzcom
        4
    yylzcom  
       2014-12-30 13:27:52 +08:00
    wp-config.php 可以写入siteurl,然后所有链接以此文件为准
    wezzard
        5
    wezzard  
       2014-12-30 13:42:33 +08:00
    居然拿 wordpress 做 wiki ……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5264 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:44 · PVG 16:44 · LAX 00:44 · JFK 03:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.