dede登陆后台页面空白,dede注销页面空白的解决方案(转)

0 个评论
每个人与每个人的情况不同,解决方法不同。本例只说明我遇到的情况,不是万能的方法 DEDECMS 5.7 UTF-8 PHP5.4.7版本 修改文件include/userlogin.class.php 搜索function exitUser(),将下面的5行session_unregister替换成2行session_unset();session_destroy(); function exitUser() { ClearMyAddon(); session_unset(); session_destroy(); DropCookie('dedeAdmindir'); DropCookie('DedeUserID'); DropCookie('DedeLoginTime'); $_SESSION = array(); } 搜索function keepUser(),将下面的@session_register……注释掉即可,6处 if($this->userID != '' && $this->userType != '') { global $admincachefile,$adminstyle; if(empty($adminstyle)) $adminstyle = 'dedecms'; //@session_register($this->keepUserIDTag); $_SESSION[$this->keepUserIDTag] = $this->userID; //@session_register($this->keepUserTypeTag); $_SESSION[$this->keepUserTypeTag] = $this->userType; //@session_register($this->keepUserChannelTag); $_SESSION[$this->keepUserChannelTag] = $this->userChannel; //@session_register($this->keepUserNameTag); $_SESSION[$this->keepUserNameTag] = $this->userName; //@session_register($this->keepUserPurviewTag); $_SESSION[$this->keepUserPurviewTag] = $this->userPurview; //@session_register($this->keepAdminStyleTag); $_SESSION[$this->keepAdminStyleTag] = $adminstyle; PutCookie('DedeUserID', $this->userID, 3600 * 24, '/'); PutCookie('DedeLoginTime', time(), 3600 * 24, '/'); $this->ReWriteAdminChannel(); return 1; } 说明,php5.4早就已经抛弃session_register和session_unregister这2个函数了,所以会出错。 session_unset()  不带参数,释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id,没有返回值。 session_destroy()  不带参数,删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留,成功返回true。 session_unregister()  带参数,注销一个指定session变量,成功返回true。 所以,释放用户的session所有资源,需要顺序执行如下代码: <?php session_unset(); session_destroy(); ?>     php5可以不用声明session就可以使用,所以注销掉session的声明
2014-06-15 / dedecms / 3,418 views浏览
阅读全文

WordPress调用Google字体导致网站速度慢解决方法(部分转)

0 个评论
因国内某些因素,导致国内连接到Google字体的API:fonts.googleapis.com 和 themes.googleusercontent.com 不稳定,且Wordpress 3.8版本以后的后台、自带模版都调用了Google字体的CSS连接,因CSS在网页头部,所以导致网页加载速度非常慢,伤不起 但我们躲得起,下面提供两招回避这个问题。 一、后台躲得起法 硬顶着头皮进入WP后台,插件-安装插件 搜索 “Remove Open Sans font Link from WP core”插件 或 “Disable Google Fonts”,二选一,木有引号。 这招只能解决后台问题,安装并启用插件后,ctrl+F5试试效果 然后安装即可。 二、前台替换法 把thems下的主题文件夹中所有的 fonts.googleapis.com换成fonts.useso.com,整个文件夹下载下来用notepad++全文件夹搜这个替换,然后把wp-includes/script-loader.php中的也换掉 这个是把所有的谷歌字体替换为国内的服务器上的字体,fonts.useso.com貌似是360提供的 主要有两个地方的 fonts.googleapis.com需要修改为fonts.useso.com, \wp-includes\script-loader.php 和 \wp-content\themes\对应主题\functions.php里面,看来要换主题就需要修改一次 还有网上盛传的class Disable_Google_Fonts我使用了一下貌似没反应,我觉得上面的替换法其实蛮好的~ 还有就是所有字体下载到本地的,个人觉得非常麻烦~就不尝试了~
2014-06-09 / wordpress / 3,066 views浏览
阅读全文

(转)Windows xp 下如何压缩tar.gz格式

0 个评论
tar.gz 是linux和unix下面比较常用的格式,几个命令就可以把文件压缩打包成tar.gz格式,然而这种格式在windows并不多见,WinRAR、WinZip等主流压缩工具可以释放解开,却不能打包生成。但是tar.gz在服务器端却很常用,因为服务器系统linux占了相当的一部分。于是许多习惯用Windows的Web开发人员,在上传网站到空间时可能会遇到这个压缩格式的麻烦。如何生成得到tar.gz压缩包,在网上搜了一下除了复杂的命令行和开源软件之外,似乎没有其他的。偶然发现“7-ZIP”这个软件可以很方便地解决这个问题。 具体步骤如下: 一、安装7-ZIP以后,直接在你想要打包的文件上点右键菜单,会有一个7-ZIP的子菜单栏,类似WinRAR和WinZIP的那种右键菜单。然后选“7-ZIP”->“添加到压缩档案”,在弹出来的窗口里有个“压缩格式”的选项,里面并没有tar.gz格式,没关系,里面有一个Tar格式,第一步就是要先压成tar格式。 二、成功打包为Tar文件后,你可能会发现这个tar文件包和原来的文件大小一样,也就是说tar本身并没有压缩,而是仅仅把它们打包成一个单独的Tar文件。所以需要做第二步,再在这个tar文件上面点右键,选“7-ZIP”->“添加到压缩档案”,这时候弹出的窗口里再看“压缩格式选项”,发现多了两个刚才没有的,其中就包括“GZip”,是的,这一步就是把tar文件继续压缩成GZip。选择“GZip”格式后确定,最后结果就是一个新的tar.gz格式的文件。 经本人测试,兼容各种软件,上传到服务器上也没有问题。整个过程鼠标流,完全不用敲什么命令行。至此,在windows下面得到tar.gz完成。 另外再记下一件事,在Cpanel 11 控制面板下面的File Manager 文件管理器中,有在线打包(Compress)和解压(Extract)功能,支持ZIP和Tar.gz等格式,RAR好像不行。关于这个解压功能的“是否覆盖存在文件”,如果压缩包是ZIP格式会有几行提示说是否要覆盖,不用费力去想怎样才能完成这个选择,实际上这几行字是不能点击的,它会默认选否,不覆盖。那么问题就来了,如果要想覆盖原有的文件怎么办?Cpanel的官方网站什么不说,倒是在某个英文论坛角落找到了答案,就是使用tar.gz格式。tar.gz压缩包释放的时候会默认选覆盖,我试过了确实如此,够晕吧。   今天有个客户的空间很奇怪~不支持ZIP和RAR的解压缩,只有tar格式的可行,所以我就想办法先把本地文件压缩为tar格式,上网搜到了上面的解决办法~感觉很不错
2014-05-28 / 网站制作技术 / 2,351 views浏览
阅读全文

wordpress Filter可以替换的东东

0 个评论
http://codex.wordpress.org/Plugin_API/Filter_Reference
2014-05-28 / wordpress / 2,340 views浏览
阅读全文

扩展WordPress分类,添加可视化自定义字段功能

0 个评论
原来我是用插件的 叫wp-category-meta,不过发现他貌似没有调用编辑器的选项 于是上网找了一下,ashu的框架介绍里说是可以添加 不过我不知道具体参数,网上也找不到相关资料 所以只好又找其他的,发现了http://www.oome.org/tax-meta-class.html 里面引用了一个类,可以实现我想要的功能 这个类实际是老外写的 https://github.com/bainternet/Tax-Meta-Class
2014-05-13 / wordpress / 2,346 views浏览
阅读全文

wp_nav_menu 函数经Walker_Nav_Menu 类自定义导航菜单HTML

0 个评论
WordPress 中有一个导航菜单函数wp_nav_menu,通过这个函数可以控制菜单输出的HTML 结构,一般开发者用这个函数的一般是在输出HTML 中自定义一些id 或者class 而已,整体的HTML 结构还是WordPress 默认的。项目的需求是各种各样的,了解如何自定义导航菜单HTML 结构就十分重要了。 wp_nav_menu 函数 囿于篇幅,本文不会教你怎么使用wp_nav_menu 函数,请自行补习。通过设置wp_nav_menu 的参数,前台输出的HTML 结构大概都是这样的(为了简洁,去除了一些id、class):   <nav> <div class=""> <ul id="" class=""> <li id="" class=""><a href="">首页</a></li> <li id="" class=""><a href="">存档</a></li> <ul class="sub-menu"> <li><a href="">WP开发</a></li> <li><a href="">WP开发</a></li> </ul> <li id="" class=""><a href="">学习</a></li> </ul> </div> </nav> 这个默认的菜单HTML 结构有非常大的限制(比如说我想在每个li前面添加个标签办不了,一些class的名称也定义不了),如果只这么用根本不能适应各种各样的项目需求,好在WordPress 提供了一个类Walker_Nav_Menu ,通过这个类我们可以自定义HTML 结构。 Walker_Nav_Menu 的用法(例子) wp_nav_menu 函数中有个参数 $walker,“自定义的遍历对象,调用一个对象定义显示导航菜单。”,默认调用的是Walker_Nav_Menu (其实输出默认结构的就是这个在作怪,位于wp-includes/nav-menu-templates.php)。为了能够自定义HTML 结构,你必须打开wp-includes/nav-menu-templates.php,查看默认的代码,搞清楚与前端输出代码的关系,并在其基础上修改,然后自定义为新的一个类供wp_nav_menu 函数调用。 例子: 比如说WordPress 中输出二级菜单的话,ul 中类名默认是sub-menu,那我想改为child-menu,怎么办? 步骤: 打开wp-includes/nav-menu-templates.php,找到产生ul class="sub-menu"的代码:   function start_lvl( &$output, $depth = 0, $args = array() ) { $indent = str_repeat("\t", $depth); $output .= "\n$indent<ul class=\"sub-menu\">\n"; } 那么根据我的需求,代码应该改成是:   function start_lvl( &$output, $depth = 0, $args = array() ) { $indent = str_repeat("\t", $depth); $output .= "\n$indent<ul class=\"child-menu\">\n"; } 准确来讲,整体的类的代码应该是(dw_walker这个类名是自己取的,请自行定义): class dw_walker extends Walker_Nav_Menu { function start_lvl( &$output, $depth = 0, $args = array() ) { $indent = str_repeat("\t", $depth); $output .= "\n$indent<ul class=\"child-menu\">\n"; } } 然后在wp_nav_menu 函数中调用这个自定义的类:   <?php wp_nav_menu( array( 'theme_location' => 'mobilemenu', 'walker' => new dw_walker(), 'fallback_cb' => '' ) ); ?> 上诉只是举了个简单的例子来告知Walker_Nav_Menu 类的使用,实际项目中肯定不单单那么简单的,这么来讲,除了基本的WordPress 知识、html+CSS,还需要一些PHP 知识。 更多例子的话,最近发布EaseMobile 主题在导航栏上的图标设置就是采用了Walker_Nav_Menu 类自定义输出。
2014-05-13 / 生活 / 2,718 views浏览
阅读全文

WordPress自带thumbnail缩略图功能使用介绍(转)

0 个评论
从wordpress2.9开始就可以使用自带的缩略图功能了,实现方法也很简单 1.添加功能 在function.php中插入代码 add_theme_support('post-thumbnails'); 插入之后会在后台编辑文章的页面的右下角出现特色图片,(有的版本可能是或者是文章缩略图) 点击设定特色图像后出来的就是和插入图片相同的界面,但是仔细看会发现在本地上传图片后,或者从媒体里打开文件下面会多了作为特色图像的选项 点击后等它显示完成便可以把小窗口关掉了~ 2.如何调用 在要显示的 地方加入代码 <?php the_post_thumbnail(); ?> 既可以调用,例如插入入在首页的大循环中。 3.后续改进 (1)如果没有缩略图时调用其他图片 复制代码 代码如下: <?php if ( has_post_thumbnail() ) { ?> <?php the_post_thumbnail(); ?> <?php } else {?> <img src=”<?php bloginfo(‘template_url’); ?>/images/xx.jpg” /> <?php } ?> 把下面的那个改成你自己图片的地址就可以了~ (2)控制缩略图大小 在function.php中刚刚插入的add_theme_support( ‘post-thumbnails’ ); 后面添加 复制代码 代码如下: set_post_thumbnail_size( 50, 50, true ); 尺寸的设置顺序是: 宽度、高度(以像素为单位) (3)一张图片,要有多种大小的缩略图 在function.php中刚刚插入的add_theme_support( ‘post-thumbnails’ ); 后面添加 复制代码 代码如下: set_post_thumbnail_size( 155, 110, true ); // 305 pixels wide by 380 pixels tall, set last parameter to true for hard crop mode add_image_size( ‘one’, 155, 110, true ); // Set thumbnail size add_image_size( ‘two’, 350, 248, true ); // Set thumbnail size add_image_size( ‘big’, 546, 387, true ); // Set thumbnail size 其中第一个为默认的缩略图大小,后面三个是特殊的大小,可以根据实际情况使用。引号中的one,big,two也可以换成自己想要的名称。 调用,以调用350px*248px的为例, 复制代码 代码如下: <?php $thumbID = get_the_post_thumbnail( $post->ID, ‘two’, $imgsrcparam ); ?> <?php echo “$thumbID”; ?>配合之前的那个,最后的代码就是: <?php if ( has_post_thumbnail() ) { ?> <?php $thumbID = get_the_post_thumbnail( $post->ID, ‘two’, $imgsrcparam ); ?> <?php echo “$thumbID”; ?><?php } else {?> <img src=”<?php bloginfo(‘template_url’); ?>”/> <?php } ?>
2014-05-11 / wordpress / 2,509 views浏览
阅读全文

wordpress页脚菜单添加分割线

0 个评论
找到好久才找到这个好东西 貌似采用这个Walker,翻译成“处理流程”可能比较好 第一步,在菜单处理流程里添加分割线 class Main_Menu_Walker extends Walker_Nav_Menu{ function end_el( &$output, $item, $depth = 0, $args = array() ) { $output .= "</li>\n"; if ($depth == 0) $output .="<li class='separator'>|</li>\n"; } }   然后就可以使用li:last-child把最后一个分割线隐藏,当然也可以用另外一个办法,就是加过滤器 function menu_remove_last_separator($items){ $separator = "<li class='separator'>|</li>"; $pos = strrpos($items, $separator); if ($pos) $items = substr_replace($items, '', $pos, strlen($separator)); return $items; } add_filter( 'wp_nav_menu_items','menu_remove_last_separator');   最后就是在wp_nav_menu中使用这个处理流程了,例子如下 wp_nav_menu(array( 'theme_location' => 'navigation', 'container' => false, 'menu_class' => 'inline', 'walker' => new main_menu_walker() ) );
2014-05-07 / wordpress / 2,799 views浏览
阅读全文

wordpress首尾Widgets加CSS样式

0 个评论
奶奶的,我找了老半天才找到这段代码,我放在functions.php里,运行正常 他还有个功能,每个widget都有自己的编号了,比如("widget-1", "widget-2", 等等). 这样就好写样式了 /** * Add "first" and "last" CSS classes to dynamic sidebar widgets. Also adds numeric index class for each widget (widget-1, widget-2, etc.) */ function widget_first_last_classes($params) { global $my_widget_num; // Global a counter array $this_id = $params[0]['id']; // Get the id for the current sidebar we're processing $arr_registered_widgets = wp_get_sidebars_widgets(); // Get an array of ALL registered widgets if(!$my_widget_num) {// If the counter array doesn't exist, create it $my_widget_num = array(); } if(!isset($arr_registered_widgets[$this_id]) || !is_array($arr_registered_widgets[$this_id])) { // Check if the current sidebar has no widgets return $params; // No widgets in this sidebar... bail early. } if(isset($my_widget_num[$this_id])) { // See if the counter array has an entry for this sidebar $my_widget_num[$this_id] ++; } else { // If not, create it starting with 1 $my_widget_num[$this_id] = 1; } $class = 'class="widget-' . $my_widget_num[$this_id] . ' '; // Add a widget number class for additional styling options if($my_widget_num[$this_id] == 1) { // If this is the first widget $class .= 'widget-first '; } elseif($my_widget_num[$this_id] == count($arr_registered_widgets[$this_id])) { // If this is the last widget $class .= 'widget-last '; } $params[0]['before_widget'] = str_replace('class="', $class, $params[0]['before_widget']); // Insert our new classes into "before widget" return $params; } add_filter('dynamic_sidebar_params','widget_first_last_classes');
2014-05-06 / 生活 / 2,255 views浏览
阅读全文

centos6.5装好后的操作,避免自己忘记记录一下

0 个评论
Su 用户名 切换用户(直接用”su”这个命令,输入密码就可以是管理员权限了) 然后更新源 1. cd /etc/yum.repos.d 2. mv CentOS-Base.repo CentOS-Base.repo.backup 3. wget http://mirrors.163.com/.help/CentOS6-Base-163.repo 4. mv CentOS6-Base-163.repo CentOS-Base.repo 5.yum clean all 然后安装SSH 1,安装SSH yum install ssh 2,启动SSH service sshd start 3,设置开机运行 chkconfig sshd on Ifconfig 查看连接信息(我用虚拟机安装的,需要查看虚拟机分配到了什么IP) 然后就可以通过putty在其他系统下进行管理了
2014-04-26 / centos / 2,504 views浏览
阅读全文