wordpress中,'??'会变成'?',是什么原因?该怎么解决?

lotcloud 发布于 2014/01/03 11:25
阅读 417
收藏 0
环境:PHP 5.3,Tengine 1.5.2,wordpress 3.8
目的:用Tengine中的nginx_concat_module来合并调用css
用法:"http://example.com/??style1.css,style2.css,css/style3.css "
通过' ?? '来合并多个css

  1. define ( 'TEST_URL', 'http://example.com/??style1.css,style2.css,css/style3.css' ); 
  2. wp_enqueue_style('test', TEST_URL);

不知道为什么,在wp_enqueue_style()中,'??'被处理成'?',2个问号变成了1个,调用css的地址变成了"http://example.com/?style1.css,style2.css,css/style3.css ",合并自然失败了。

试了下不使用wp_enqueue_style,直接
  1. <script src="http://example.com/??style1.css,style2.css,css/style3.css"></script>

这样子却合并成功。


基础太差,看wordpress官方文档中有关wp_enqueue_style()和wp_style的内容看不明白,找不到答案。

想知道为什么,怎样子可以解决上述问题,谢谢。
加载中
0
叫我红领巾
叫我红领巾
没遇到过这种情况,我是直接用用军哥的LNMP安装包, 我博客用WORDPRESS,也没问题。
l
lotcloud
你编译使用了nginx_concat_module吗?
0
lazyphp
lazyphp
你的目录是不是中文啊
l
lotcloud
我不用中文目录的
0
moli
moli

你可以直接找到这个函数,修改她的过滤函数看看。

或者你改成 ??? 3个问号?看看会被过滤成什么样。

l
lotcloud
我之前也猜测是不是被wp的某个系统函数功能给过滤了,但找不到,所以来求帮助的
l
lotcloud
我试过了,不管几个“?”,都变成一个了
0
l
lotcloud

看了下wp_enqueue_style的内容

function wp_enqueue_style( $handle, $src = false, $deps = array(), $ver = false, $media = 'all' ) {

      global $wp_styles;
      if ( ! is_a( $wp_styles, 'WP_Styles' ) ) {
        if ( ! did_action( 'init' ) )
            _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
       '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>' ), '3.3' );
       $wp_styles = new WP_Styles();
    }

    if ( $src ) {
      $_handle = explode('?', $handle);//应该是这里的原因吧,用‘?’作为分隔符,这样子的话,该怎么解决呢
      $wp_styles->add( $_handle[0], $src, $deps, $ver, $media );
    }
       $wp_styles->enqueue( $handle );
    }
返回顶部
顶部