WordPress后台安装更新插件主题及升级程序错误提示 安装失败:无法安装这个包。 PCLZIP_ERR_MISSING_FILE (-4) : Missing archive file ‘C:\Windows\TEMP/*.tmp’ 的解决方法

WordPress后台安装更新插件主题及升级程序错误提示 安装失败:无法安装这个包。 PCLZIP_ERR_MISSING_FILE (-4) : Missing archive file 'C:\Windows\TEMP/*.tmp'

从错误本身来看,您在升级WordPress或者安装插件的时候将临时文件存储在系统C:\Windows\TEMP,当你没有这个文件夹的权限的时候就会得到这个错误。

解决办法:(它的原理是原理是指定wp的临时文件夹路径,避免默认的文件夹在windows下没有权限。)

打开wordpress根目录下的wp-config.php文件
找到如下:

/** WordPress 目录的绝对路径。 */
if ( !defined(‘ABSPATH’) )
define('ABSPATH', dirname(__FILE__) . '/');

在下面增加如下代码即可:

/** 指定WordPress的临时目录 */
define('WP_TEMP_DIR', ABSPATH . 'wp-content/temp');

最后再wp-content文件夹下新建个temp文件夹,然后试试更新功能,就可以了。

使用vps或独立服务器的站长可以直接通过设置相应临时目录的权限来解决这个问题

解决WordPress编辑器可视化/文本(HTML)无法切换、添加媒体按钮失效的方法

一个网站升级wordpress到最新版本后,发现点击“添加媒体”、“可视化/文本编辑模式切换”等功能按钮均失效没反应,查找资料发现wordpress为了提高效率以及加载速度,把要用到的js连接在一起,如果没有结合在一起就会导致那些依赖js的功能失效,而部分主机可能由于环境配置不标准或禁用了某些相关函数,导致这些js无法连接在一起,因此产生了按钮异常等情况。

解决方法:

在网站根目录的wp-config.php文件中,添加以下这句代码即可:

define('CONCATENATE_SCRIPTS', false);

这句代码的作用是禁止js结合在一起。

引自:http://www.boke8.net/wordpress-some-button-failure.html

WordPress可以显示代码的2个插件

CodeColorer 和 WP-Syntax 这两个插件都挺好用,都可以在插件里搜索到。

注意:下面所有的双引号,复制后请替换成英文的双引号

WP-Syntax使用方法

<pre lang="html" line="1" escaped="true">
//这里添加需要插入的代码……
</pre>

其中lang=”html”是代码语言(这里是html,可根据插入的语言修改如php),line=”1″是指是否显示行号,设置为1为显示0则不显示,escaped=”true”是代码是为了防止代码被转义,设置为false则被转义。

支持的语言如下:abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm, asp, autoit, avisynth, bash, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cil, cfdg, cfm, cmake, cobol, cpp-qt, cpp, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, gettext, glsl, gml, bnuplot, groovy, haskell, hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml-brief, ocaml, oobas, oracle11, oracle8, pascal, per, pic16, pixelbender, perl, php-brief, php, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xml, xorg_conf, xpp, z80

 

 

CodeColorer的使用方法
<code lang="lang_name">这里是代码</code>
lang_name表示语言名称,根据插入语言的类型写入适当的值,例如要高亮PHP代码,则用下面的语句:
<code lang="php">echo “This is php code”;</code>

CodeColorer支持的语言有:
abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm, asp, autoit, avisynth, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, cil, cmake, cobol, cpp-qt, cpp, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, gettext, glsl, gml, gnuplot, groovy, haskell, hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml-brief, ocaml, oobas, oracle11, oracle8, pascal, per, perl, php-brief, php, pic16, pixelbender, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xml, xorg_conf, xpp, yaml, z80.

 

向上逐行滚动文字广告代码

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
    transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>向上逐行滚动文字广告代码</title>
<meta name="keywords" content="网页特效,网页模板,导航菜单,焦点幻灯片,JS代码,空间素材" />
<meta name="description" content="懒人建站为您提供-空间素材" />
    </head>
    <body>
    <SCRIPT type=text/javascript>
    var $ = function (id) {
    return "string" == typeof id ? document.getElementById(id) : id;
    };
    var Class = {
    create: function() {
    return function() {
    this.initialize.apply(this, arguments);
    }
    }
    }
    Object.extend = function(destination, source) {
    for (var property in source) {
    destination[property] = source[property];
    }
    return destination;
    }
    function addEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.addEventListener) {
    oTarget.addEventListener(sEventType, fnHandler, false);
    } else if (oTarget.attachEvent) {
    oTarget.attachEvent("on" + sEventType, fnHandler);
    } else {
    oTarget["on" + sEventType] = fnHandler;
    }
    };
    var Scroller = Class.create();
    Scroller.prototype = {
    initialize: function(idScroller, idScrollMid, options) {
    var oThis = this, oScroller = $(idScroller), oScrollMid = $(idScrollMid);
    this.SetOptions(options);
    this.Side = this.options.Side || ["up"];//方向
    this.scroller = oScroller;   //对象
    this.speed = this.options.Speed; //速度
    this.timer = null;     //时间
    this.pauseHeight = 0;    //定高
    this.pauseWidth = 0;    //定宽
    this.pause = 0;      //定高(宽)
    this.side = 0;      //参数
    //用于上下滚动
    this.heightScroller = parseInt(oScroller.style.height) || oScroller.offsetHeight;
    this.heightList = oScrollMid.offsetHeight;
    //用于左右滚动
    this.widthScroller = parseInt(oScroller.style.width) || oScroller.offsetWidth;
    this.widthList = oScrollMid.offsetWidth;
    //js取不到css设置的height和width
    oScroller.style.overflow = "hidden";
    oScrollMid.appendChild(oScrollMid.cloneNode(true));
    oScrollMid.appendChild(oScrollMid.cloneNode(true));
    addEventHandler(oScroller, "mouseover", function() { oThis.Stop(); });
    addEventHandler(oScroller, "mouseout", function() { oThis.Start(); });
    this.Start();
    },
    //设置默认属性
    SetOptions: function(options) {
    this.options = {//默认值
    Step:   1,//每次变化的px量
    Speed:  20,//速度(越大越慢)
    Side:   ["up"],//滚动方向:"up"是上,"down"是下,"left"是左,"right"是右
    PauseHeight: 0,//隔多高停一次
    PauseWidth: 0,//隔多宽停一次
    //当上下和左右一起使用时必须设置PauseHeight和PauseWidth来设置转向位置
    PauseStep: 3000//停顿时间(PauseHeight或PauseWidth大于0该参数才有效)
    };
    Object.extend(this.options, options || {});
    },
    //转向
    Turn: function() {
    //通过设置方向数组的排列来转向
    this.Side.push(this.Side.shift().toLowerCase());
    },
    //上下滚动
    ScrollUpDown: function() {
    this.pause = this.pauseHeight;
    this.scroller.scrollTop = this.GetScroll(this.scroller.scrollTop, this.heightScroller, this.heightList,
    this.options.PauseHeight);
    this.pauseHeight = this.pause;
    var oThis = this;
    this.timer = window.setTimeout(function(){ oThis.Start(); }, this.speed);
    },
    //左右滚动
    ScrollLeftRight: function() {
    this.pause = this.pauseWidth;
    //注意:scrollLeft超过1400会自动变回1400 注意长度
    this.scroller.scrollLeft = this.GetScroll(this.scroller.scrollLeft, this.widthScroller, this.widthList,
    this.options.PauseWidth);
    this.pauseWidth = this.pause;
    var oThis = this;
    this.timer = window.setTimeout(function(){ oThis.Start(); }, this.speed);
    },
    //获取设置滚动数据
    GetScroll: function(iScroll, iScroller, iList, iPause) {
    var iStep = this.options.Step * this.side;
    if(this.side > 0){
    if(iScroll >= (iList * 2 - iScroller)){ iScroll -= iList; }
    } else {
    if(iScroll <= 0){ iScroll += iList; }
    }
    this.speed = this.options.Speed;
    if(iPause > 0){
    if(Math.abs(this.pause) >= iPause){
    this.speed = this.options.PauseStep; this.pause = iStep = 0; this.Turn();
    } else {
    this.pause += iStep;
    }
    }
    return (iScroll + iStep);
    },
    //开始
    Start: function() {
    //document.getElementById("test").innerHTML+=sTurn+",";
    //方向设置
    switch (this.Side[0].toLowerCase()) {
    case "right" :
    if(this.widthList < this.widthScroller) return;
    this.side = -1;
    this.ScrollLeftRight();
    break;
    case "left" :
    if(this.widthList < this.widthScroller) return;
    this.side = 1;
    this.ScrollLeftRight();
    break;
    case "down" :
    if(this.heightList < this.heightScroller) return;
    this.side = -1;
    this.ScrollUpDown();
    break;
    case "up" :
    default :
    if(this.heightList < this.heightScroller) return;
    this.side = 1;
    this.ScrollUpDown();
    }
    },
    //停止
    Stop: function() {
    clearTimeout(this.timer);
    }
    };
    </SCRIPT>
    <STYLE>
    body {font-size:12px;}
    .Scroller {line-height:20px; border:1px solid #D4D4D4; padding:0px 10px; height:20px; width:400px;}
    .Scroller *{margin:0px; padding:0px;}
    .ScrollMid {float:left;}
    .ScrollMid ul{width:400px;float:left;}
    .ScrollMid li{list-style:none; float:left; width:390px; padding-left:10px;line-height:20px; }
    </STYLE>
    <DIV class=Scroller id=idScroller>
    <DIV style="WIDTH: 400px">
    <DIV class=ScrollMid id=idScrollMid>
    <UL>
    <LI><a href="http://www.webkey.cn" target="_blank">解放出你的部分写代码时间来思考更高层次的设计</a></LI>
    <LI><a href="http://www.webkey.cn" target="_blank">网页特效,网页模板,导航菜单,焦点幻灯片,JS代码,空间素材
    </a></LI>
    <LI><a href="http://www.webkey.cn" target="_blank">懒人建站为您提供-空间素材,JS广告代码,网页特效
    </a></LI>
    <LI><a href="http://www.webkey.cn" target="_blank">焦点幻灯片代码,网页欣赏与网页模板和CSS技巧
    </a></LI></UL></DIV></DIV></DIV>
    <SCRIPT>
    new Scroller("idScroller", "idScrollMid",{ Side:["up",""], PauseHeight:20, PauseWidth:400 });
    </SCRIPT>
    </body>
    </html>

引用自:http://www.51xuediannao.com/js/gg/gundongwenzi.html

WordPress设置导航菜单 添加主页按钮

访问后台 – 外观 – 菜单,然后点击页面上的“+”按钮,填写一个菜单的名字(可以是任意文字,只是用来识别罢了),然后点击“创建菜单”。比如下图我创建一个名为“菜单”的菜单(有些新手朋友误以为这里添加的“菜单”就是一个单独的链接,其实不是这样的,这个“菜单”是一组链接,你可以给他添加N个链接,组成导航条。):

①从左边选择需要添加的链接(自定义链接、页面链接和分类链接),加入到菜单中去。(自定义链接:允许你添加任何链接,比如你可以添加一个首页,链接指向首页网址即可)

②可以编辑每个菜单项目的信息,并用拖放的方式为其排序。将某个菜单项稍稍向右拖动,这个项目即变为子菜单(低一格就是二级菜单,低两格就是三级菜单,以此类推。前提是你的WordPress主题支持显示子菜单哦),这样您的菜单便有了层级关系。

③排好菜单以后,点击“保存菜单”。

④然后为你设置的菜单选择显示的位置(有些WordPress主题支持不同位置调用不同菜单,所以你可以设置不同的菜单,然后选择显示位置)。

菜单高级设置

WordPress菜单隐藏了一些功能,如果你想控制菜单更多的属性,不妨点击屏幕右上角的“显示选项”,让隐藏的功能都显示出来:

你可以选择更多的菜单项目种类(例如标签和文章),还可以显示菜单的高级属性(链接目标、CSS类、链接关系网、描述)

导航标签 – 就是链接的文字
标题属性 – 就是a标签的title属性值,比如上图填写”WP大学”
CSS类 – 给某个菜单项添加class,通过css是这个菜单项与众不同,如上图我添加了“home-page”
链接关系网 – 通过链接关系网(XFN)给菜单添加rel属性,例如不想搜索引擎跟随这个菜单,可以为其添加rel="nofllow"属性
链接目标 – 控制菜单打开方式,在新窗口打开(target="_blank")或在当前窗口打开(默认)。

引用自:https://www.wpdaxue.com/wordpress-nav-menus.html

删除WordPress的评论PHP文件,禁止评论

如果你不想文章被评论,直接删除网站根目录下的 wp-comments-post.php 文件即可,然后删除每个页面上的评论框,方法见 http://blog.x6x8.com/?p=749

网站根目录下面的wp-comments-post.php文件是最主要的,也是post垃圾评论的入口,为此我们将这个文件改名,改成什么都可以,小编这里改成:zbg-comments-post.php,然后找到当前Wordpress主题里面的comments.php文件,下载到本地打开编辑,找到调用文件代码内的:wp-comments-post.php修改成zbg-comments-post.php就可以了,总之修改的内容和文件修改的名字是一样的就行了;这里提醒一下大家,小编这里是简单的修改,如果你想做的万无一失的话,可以改成其他名字,一般人想不到的你就赢了!

 

网站统计里的PV(访问量)、UV(独立访客)、IP(独立IP)介绍

PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。
UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内 相同的客户端只被计算一次。
IP(独立IP):即Internet Protocol,指独立IP数。00:00-24:00内相同IP地址之被计算一次。

说下ip,pv,uv的区别

独立IP表示,拥有特定唯一IP地址的计算机访问您的网站的次数,因为这种统计方式比较容易实现,具有较高的真实性,所以成为大多数机构衡量网站流量的重要指标。比如你是ADSL拨号上网的,你拨一次号都自动分配一个ip,这样你进入了本站,那就算一个ip,当你断线了而没清理cookies,之后又拨了一次号,又自动分配到一个ip,你再进来了本站,那么又统计到一个ip,但是UV(独立访客)没有变,因为2次都是你进入了本站。

来说明一下PV高不一定代表来访者多;PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量。比如一个网站就你一个人进来,通过不断的刷新页面,也可以制造出非常高的PV。

ip在这里是指公用的广域网传输协议族(Tcp/Ip)为每一台处在因特网上的计算机(可以是个人电脑、服务器以及其他兼容广域网传输协议族规定的接入设备)都定义了四个段落(例如:192.168.0.255形式,有时会加入第五段落端口号作为描述信息,端口号是介于1-65535之间的数字)共 32位长度二进制代码的标识,叫IP协议地址,简称ip地址,俗称ip,它是一个一台连接着广域网的计算机区别于其他机器的标识,一般情况下,它在同一级别的网络(例如某个局域网、社区网、教学楼网或者INTERNET)范围内是唯一的。

uv独立访客是指不同的、通过互联网访问、浏览一个网页的自然人。
比如,在一台电脑上,哥哥打开了微软的官方主页,注册了一个会员。弟弟一会儿也看了看,注册了另一个会员。由于兄弟两个使用的是相同的计算机,那么他们的ip是一样的,微软的官方计数器记录到一个ip登陆的信息。但是,具有统计功能的统计系统,可以根据其他条件判断出实际使用的用户数量,返回给网站建设者真实、可信和准确的信息。比如通过注册的用户,甚至可以区分出网吧、机房等共享一个ip地址的不同计算机。上面的例子就说明虽然是同一ip,但是有2个独立访客。再举个例子吧,比如一个网吧里,有100个人都进入了我的网站,但是一个网吧对外都是一个IP的,所以统计系统只统计到一个IP;但是因为网吧里 有100人在访问我的站,尽管他们都仅仅打开我的网站的首页,或者这100人都把我网站所有页面都看过了一遍,统计系统都只统计到100个独立访客。

使用uv独立访客作为统计量有什么好处?它比ip更加准确吗?
ip是一个反映网络虚拟地址对象的概念,独立访客是一个反映实际使用者的概念,每个独立访客相对于每个ip,更加准确地对应一个实际的浏览者。使用独立访客作为统计量,可以更加准确的了解单位时间内实际上有多少个访问者来到了相应的页面。

Discuz!报错 Error:Unknown column ‘app1’ in ‘where clause’ 的解决办法

UCenter info: MySQL Query Error
SQL:SELECT * FROM [Table]notelist WHERE closed='0' AND app1<'1' AND app1>'-5' LIMIT 1
Error:Unknown column 'app1' in 'where clause'
Errno:1054

Discuz!报错以上代码,并且用谷歌浏览器登录Discuz!论坛,没反应,需要刷新才能登录成功。

网上搜到的方法是notelist缺少了必要的字段引起的。下载UCenter 1.5.0 http://download.comsenz.com/UCenter/1.5.0/UCenter_1.5.0_SC_GBK.zip 找到里面的utilities\checkappid.php ,上传到 UCenter 根目录之后通过浏览器访问之,例如   http://yourucenterurl/checkappid.php

但是我试了不行,搜到此贴解决了我的问题 http://www.discuz.net/thread-1181335-1-1.html

方法就是登录DZ后台(注意不是UC后台),站长-UCenter 设置,把UCenter 应用 ID:的数字改成2。

恩,解决方法很奇怪,因为UC后台的应用管理里分明是1。