t66.org
域名年龄: 11年5个月27天HTTP/1.1 403 Forbidden 服务器:nginx 访问时间:2014年12月28日 05:22:49 类型:text/html 文件大小:162 连接:keep-alive
T66.ORGMorning, World!菜单跳至内容首页PHPCMS相关regester_siderbar 函数中 参数数组的 ‘id’ 不能有大写字母发表回复测试过多次。 只要其id含有大写字母就会失败。1、后台。将widget拖到该sidebar 可以显示也可以设置。但是,刷新后台widgets.php页面,刚才拖进去的widget就没有了。2、前台,dynamic_sidebar($id) 无法调用,返回 false。分析:1、 添加widget也可以保存到数据库中(options表中),可以查到。2、涉及文件: widgets.php暂时写这些,以后找个时间好好分析一下。========================= 初步原因====================问题出在函数dynamic_sidebar($id)中(wp-include/widgets.php )其实,在后台出现添加到以大写字母作为id的sidebar中,刷新后sidebar中没有的原因是:,wp-admin/widgets.php中显示sidebar及其widget时也是调用了 dynamic_sidebar() 函数。由于下面的代码错误导致后台添加后不显示(其实已经添加了,仅仅是不显示、无法设置)。function dynamic_sidebar($index = 1) {global $wp_registered_sidebars, $wp_registered_widgets;if ( is_int($index) ) {$index = “sidebar-$index”;} else {$index = sanitize_title($index); //这一句去掉 sanitize_title() 这个函数转换大写为小写(需要进一步研究一下)foreach ( (array) $wp_registered_sidebars as $key => $value ) {//echo sanitize_title($value['name']). ‘==’. $index .’<br/>’;if ( sanitize_title($value['name']) == $index) { //$index 换成sanitize_title($index)$index = $key;break;}}}//var_dump($wp_registered_sidebars);echo $index;$sidebars_widgets = wp_get_sidebars_widgets();if ( empty( $sidebars_widgets ) )return false;if ( empty($wp_registered_sidebars[$index]) || !array_key_exists($index, $sidebars_widgets) || !is_array($sidebars_widgets[$index]) || empty($sidebars_widgets[$index]) )return false;$sidebar = $wp_registered_sidebars[$index];$did_one = false;foreach ( (array) $sidebars_widgets[$index] as $id ) {if ( !isset($wp_registered_widgets[$id]) ) continue;$params = array_merge(array( array_merge( $sidebar, array(‘widget_id’ => $id, ‘widget_name’ => $wp_registered_widgets[$id]['name']) ) ),(array) $wp_registered_widgets[$id]['params']);// Substitute HTML id and class attributes into before_widget$classname_ = ”;foreach ( (array) $wp_registered_widgets[$id]['classname'] as $cn ) {if ( is_string($cn) )$classname_ .= ‘_’ . $cn;elseif ( is_object($cn) )$classname_ .= ‘_’ . get_class($cn);}$classname_ = ltrim($classname_, ‘_’);$params[0]['before_widget'] = sprintf($params[0]['before_widget'], $id, $classname_);$params = apply_filters( ‘dynamic_sidebar_params’, $params );$callback = $wp_registered_widgets[$id]['callback'];do_action( ‘dynamic_sidebar’, $wp_registered_widgets[$id] );if ( is_callable($callback) ) {call_user_func_array($callback, $params);$did_one = true;}}return $did_one;}本条目发布于2013 年 1 月 10 日。属于wordpress 源码、wordpress插件开发分类。作者是admin。WordPress 3 多站点配置子站点无法显示图片问题 附Nginx伪静态配置发表回复nginx+php+wordpress 3.1的环境下,所有图片下载完成后,Firefox显示”图像 “XXXX” 因其本身有错无法显示。” , FireBug显示”Image corrupt or truncated“把图片下载下来,用16进制编辑器打开,发现比通常的文件头多了”EF BB BF“,这显然是UTF8的DOM签名。估计是伪静态转接时,没有清理干净。打开wp-includes/ms-files.php在最后// If we made it this far, just serve the filereadfile( $file );改为// If we made it this far, just serve the file// fix utf-8 domob_clean();flush();readfile( $file );flush();即可
© 2010 - 2020 网站综合信息查询 同IP网站查询 相关类似网站查询 网站备案查询网站地图 最新查询 最近更新 优秀网站 热门网站 全部网站 同IP查询 备案查询
2024-06-07 01:43, Process in 0.0102 second.