WordPress中文标签tag无法显示的解决办法

By lwl0606, 2010年08月23日

 

WordPress点击中文标签提示找不到文章的页面,有以下几种解决方法

修改wp-includes/rewrite.php
这是网上最常见的方法,原理是,让WordPress在对其他内容使用Permalink的时候,对tag不使用,而使用链接2的QueryString模式发送中文编码:

function get_tag_permastruct() {
if (isset($this->tag_structure)) {
return $this->tag_structure;
}
if (empty($this->permalink_structure)) { //-----this line need change------
$this->tag_structure = '';
return false;
}
把第5行改为

if (!empty($this->permalink_structure)) {

如果你用的是windows主机,还可以这样做:

原理是,IIS会将PathInfo中的UTF-8转换成GBK,而QueryString中就不会转换,故而为了使用Permalink,采用以下方法:
打开wp-includes/classes.php文件,
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = $_SERVER['PATH_INFO'];
else
$pathinfo = '';
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
$req_uri = $_SERVER['REQUEST_URI'];
改为

if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");
else
$pathinfo = '';
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");

这种发放的缺点是 :只对Windows主机、且必须是Windows下的IIS主机有效。

Discuz 7 自动生成添加标签Tag

By lwl0606, 2009年11月11日

进入后台设置
1.打开 全局 --->论坛功能--->主题标签(TAG) 选择"使用且自动生成"
并设置"帖子中解析的标签(TAG)数目:"    提交
Discuz自动标签

2.
打开 版块--->版块管理 点击须要自动生成标签的版块后面的 "编辑" 进入如下页面

"编辑版块" -->"帖子选项" ---> "启用主题标签(TAG):" 选择 "使用且自动生成"
Discuz自动标签_1

然后点工具--更新缓存 就可以了。打开论坛帖子就可以看到标签了。
如果还没看到,可以按照如下方法更新缓存:
打开论坛根目录下的forumdata/cache/ ,清空里面所有文件;
打开论坛根目录下的forumdata/templates/,清空里面除 index.htm 以外的文件;
然后过一会就可以看到标签了。

误删Discuz代码, 如何恢复

By lwl0606, 2009年10月15日

用SQL句语升级 可以恢复
系统设置->工具->数据库->升级->贴入所需的SQL句语->提交
4
1. 恢复滚动字体[fly][/fly]

INSERT INTO cdb_bbcodes VALUES ('20','0','0','fly','bb_fly.gif','<marquee width=\"90%\" behavior=\"alternate\" scrollamount=\"3\">{1}</marquee>','[fly]This is sample text[/fly]','使内容横向滚动,这个效果类似 HTML 的 marquee 标签,注意:这个效果只在 Internet Explorer 浏览器下有效。','1','请输入滚动显示的文字:','1','19');

2.恢复Flash[flash][/flash]

INSERT INTO cdb_bbcodes VALUES ('21','0','0','flash','bb_flash.gif','<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" width=\"550\" height=\"400\"><param name=\"allowScriptAccess\" value=\"sameDomain\"><param name=\"movie\" value=\"{1}\"><param name=\"quality\" value=\"high\"><param name=\"bgcolor\" value=\"#ffffff\"><embed src=\"{1}\" quality=\"high\" bgcolor=\"#ffffff\" width=\"550\" height=\"400\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" wmode=\"transparent\" /></object>','Flash Movie','嵌入 Flash 动画','1','请输入 Flash 动画的 URL:','1','20');

3.恢复QQ[qq][/qq]
INSERT INTO cdb_bbcodes VALUES ('22','1','0','qq','bb_qq.gif','<a href=\"http://wpa.qq.com/msgrd?V=1&Uin={1}&amp;Site=[Discuz!]&amp;Menu=yes\" target=\"_blank\"><img src=\"http://wpa.qq.com/pa?p=1:{1}:1\" border=\"0\"></a>','[qq]688888[/qq]','显示 QQ 在线状态,点这个图标可以和他(她)聊天','1','请输入显示在线状态 QQ 号码:','1','21');

4.  恢复上标文字[sup][/sup]
SQL句语:
INSERT INTO cdb_bbcodes VALUES ('23','0','0','sup','bb_sup.gif','<sup>{1}</sup>','X[sup]2[/sup]','上标','1','请输入上标文字:','1','22');

5.  恢复下标文字[sub][/sub]
INSERT INTO cdb_bbcodes VALUES ('24','0','0','sub','bb_sub.gif','<sub>{1}</sub>','X[sub]2[/sub]','下标','1','请输入下标文字:','1','23');
6.  丢失所有Discuz!代码 包括粗体 字体大小等
(没有丢失上面五项的话不需要理会这里 这里的SQL句语是直接重建Discuz!代码数据表)
SQL句语:

DROP TABLE IF EXISTS cdb_bbcodes;
CREATE TABLE cdb_bbcodes (
  id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  available tinyint(1) NOT NULL DEFAULT '0',
  `type` tinyint(1) unsigned NOT NULL DEFAULT '0',
  tag varchar(100) NOT NULL DEFAULT '',
  icon varchar(255) NOT NULL,
  replacement text NOT NULL,
  example varchar(255) NOT NULL DEFAULT '',
  explanation text NOT NULL,
  params tinyint(1) unsigned NOT NULL DEFAULT '1',
  prompt text NOT NULL,
  nest tinyint(3) unsigned NOT NULL DEFAULT '1',
  displayorder tinyint(3) NOT NULL DEFAULT '0',
  PRIMARY KEY (id)
) TYPE=MyISAM;

INSERT INTO cdb_bbcodes VALUES ('1','2','1','b i u','popup_simple','','','粗体 斜体 下划线','1','','1','0');
INSERT INTO cdb_bbcodes VALUES ('2','1','1','font','popup_fontname','','','字体','1','','1','1');
INSERT INTO cdb_bbcodes VALUES ('3','2','1','size','popup_fontsize','','','大小','1','','1','2');
INSERT INTO cdb_bbcodes VALUES ('4','2','1','color','popup_forecolor','','','颜色','1','','1','3');
INSERT INTO cdb_bbcodes VALUES ('5','2','1','align','popup_justify','','','对齐','1','','1','4');
INSERT INTO cdb_bbcodes VALUES ('6','2','1','url','cmd_createlink','','','链接','1','','1','5');
INSERT INTO cdb_bbcodes VALUES ('7','1','1','email','cmd_email','','','Email','1','','1','6');
INSERT INTO cdb_bbcodes VALUES ('8','2','1','img','cmd_insertimage','','','图片','1','','1','7');
INSERT INTO cdb_bbcodes VALUES ('9','2','1','media','popup_media','','','多媒体','1','','1','8');
INSERT INTO cdb_bbcodes VALUES ('10','2','1','quote','cmd_quote','','','引用','1','','1','9');
INSERT INTO cdb_bbcodes VALUES ('11','2','1','code','cmd_code','','','代码','1','','1','10');
INSERT INTO cdb_bbcodes VALUES ('12','2','1','list','popup_list','','','列表','1','','1','11');
INSERT INTO cdb_bbcodes VALUES ('13','2','1','indent outdent','popup_dent','','','缩进','1','','1','12');
INSERT INTO cdb_bbcodes VALUES ('14','1','1','float','popup_float','','','浮动','1','','1','13');
INSERT INTO cdb_bbcodes VALUES ('15','2','1','table','cmd_table','','','表格','1','','1','14');
INSERT INTO cdb_bbcodes VALUES ('16','1','1','free','cmd_free','','','免费信息','1','','1','15');
INSERT INTO cdb_bbcodes VALUES ('17','2','1','hide','cmd_hide','','','隐藏内容','1','','1','16');
INSERT INTO cdb_bbcodes VALUES ('18','2','1','smilies','popup_smilies','','','表情','1','','1','17');
INSERT INTO cdb_bbcodes VALUES ('19','2','1','tools','popup_tools','','','工具','1','','1','99');
INSERT INTO cdb_bbcodes VALUES ('20','0','0','fly','bb_fly.gif','<marquee width=\"90%\" behavior=\"alternate\" scrollamount=\"3\">{1}</marquee>','[fly]This is sample text[/fly]','使内容横向滚动,这个效果类似 HTML 的 marquee 标签,注意:这个效果只在 Internet Explorer 浏览器下有效。','1','请输入滚动显示的文字:','1','19');
INSERT INTO cdb_bbcodes VALUES ('21','0','0','flash','bb_flash.gif','<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" width=\"550\" height=\"400\"><param name=\"allowScriptAccess\" value=\"sameDomain\"><param name=\"movie\" value=\"{1}\"><param name=\"quality\" value=\"high\"><param name=\"bgcolor\" value=\"#ffffff\"><embed src=\"{1}\" quality=\"high\" bgcolor=\"#ffffff\" width=\"550\" height=\"400\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" wmode=\"transparent\" /></object>','Flash Movie','嵌入 Flash 动画','1','请输入 Flash 动画的 URL:','1','20');
INSERT INTO cdb_bbcodes VALUES ('22','1','0','qq','bb_qq.gif','<a href=\"http://wpa.qq.com/msgrd?V=1&Uin={1}&amp;Site=[Discuz!]&amp;Menu=yes\" target=\"_blank\"><img src=\"http://wpa.qq.com/pa?p=1:{1}:1\" border=\"0\"></a>','[qq]688888[/qq]','显示 QQ 在线状态,点这个图标可以和他(她)聊天','1','请输入显示在线状态 QQ 号码:','1','21');
INSERT INTO cdb_bbcodes VALUES ('23','0','0','sup','bb_sup.gif','<sup>{1}</sup>','X[sup]2[/sup]','上标','1','请输入上标文字:','1','22');
INSERT INTO cdb_bbcodes VALUES ('24','0','0','sub','bb_sub.gif','<sub>{1}</sub>','X[sub]2[/sub]','下标','1','请输入下标文字:','1','23');

discuz 如何在帖子中插入播放FLASH动画,视频和音乐

By lwl0606, 2009年10月15日

23
1.界面-->编辑器设置-->Discuz! 代码-->flash(可用选上),提交
2.用户-->用户组-->详情-->帖子相关-->允许使用自定义Discuz!代码(是)
3.版块-->版块管理--> 编辑-->帖子相关-->允许使用 Discuz! 代码
4.版块-->版块管理--> 编辑-->帖子选项-->允许使用 [media](没有自动播放)1

网站带www和不带www一个能打开一个不能打开的问题

By lwl0606, 2009年10月11日

网址有的会有带www 例如 www.cmszs.com 可以打开,单是不带www: 例如cmszs.com却打不开的问题,或与之相反:带WWW不能访问,不带www可以访问.
这个是由于NS设置的问题.
以虚拟主机godaddy为例:

在A记录里再添加wwww.cmszs.com或cmszs.com指向IP的A记录

如果域名不在GODADDY,修改NS的时候cmszs.com和www.cmszs.com的A记录都要改

使用ssh命令备份还原mysql数据库

By lwl0606, 2009年10月11日

登录shell后,还可进入mysql数据库服务器直接管理mysql数据库。

mysql -u username -ppassword -h hostname databasename

注意:上面的username指的用户名,password指的密码,hostname指的服务器主机,我们给开的标准是:mysql.你的域名,databasename是指的库名,一般是你域名的主体部分。个别以数字开头的域名前面加db,以-连接的,换成下划线_。    -ppassword  这个是一体的,中间没有空格。
直接输入下面的命令进行备份:
mysqldump -h mysql.dh.net -p dbname -u dbuser >bak.sql
然后回车,提示你输入数据库登陆密码,输入完密码后回车,OK! 就把数据库备份到当前目录下了
恢复bak.sql数据库:
输入下面命令后回车
mysql -h mysql.dh.net -p mysql_dbname -u mysql_dbuser
提示你输入密码,输入密码后然后回车
会出现MySQL操作提示符号
然后输入下面的命令
source bak.sql
请先确认bak.sql这个文件再当前目录下

不熟悉ssh的可以使用phpmyadmin或者帝国备份王恢复数据库

如果没把sql开启远程访问,就不能通过工具来远程访问,备份啊。

DedeCMS的8条技巧

By lwl0606, 2009年10月11日

1.DedeCMS的频道url的seo优化问题
    修改
    [field:typelink/]
    为
    [field:typelink function='str_replace("index.html","",@me)'/]
2.复制网页内容自动加入版权内容代码
请放在body之间任意位置,可以尝试复制本文内容预览效果,firefox无效。

以下为代码内容:

    <script>
    document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "⊙该文章转自河之南论坛 www.heznan.com 原文链接:"+location.href; clipboardData.setData("text", text); } }, 100 ) }
    </script>

3.让DedeCMS支持中文水印

    修改/include/inc_photograph.php,在165行处加这行代码:
    $w_text = iconv("GB2312","UTF-8",$w_text);
    最好用中文字体替换/include/data里的ant1.ttf和ant2.ttf,如用黑体,simhei.ttf。
    //图片自动加水印函数原始函数
    //------------------------------------------------
    function ImgWaterMark($srcFile,$w_pos=0,$w_img="",$w_text="",$w_font=5,$w_color="#FF0000",$w_pct)
    {

      $font_type = dirname(__FILE__).'/data/ant1.ttf';
      if(empty($srcFile) || !file_exists($srcFile)) return ;
      $w_text = iconv("GB2312","UTF-8",$w_text);//加这行就可以支持中文水印。

4.DedeCMS批量成静态、伪静、动态

在mysql里执行查询命令

将所有文档设置为“仅动态”,
update dede_archives set ismake=-1

将所有栏目设置为“使用动态页”,

update dede_arctype set isdefault=-1

改成1就是静态。

0是伪静
infolen的自由应用

[field:description function='cn_substr(@me,60)'/]
5.相对地址转绝对地址链接图片等

    图片 flash等问题问题
    @me = str_replace('src="','src="http://www.cmszs.com',@me);
    链接问题
    @me = str_replace('<a href="','<a href="www.cmszs.com',@me);

6.解决图片小于缩略图大小,显示X的问题
先找到 /dede/inc/inc_archives_functions.php 文件 打开
找到文件中的 //本地缩图  替换以下代码中标注的替换内容就可以了

                //本地缩略
                else{
                    //本地大图强制生成本地图缩略
                    if($litpic=='ddfirst' && !eregi("^http://",$picname)){
                          $oldpic = $cfg_basedir.$picname;
                          if(!eregi('_lit',$litpic)){
                              $litpic = str_replace('.','_lit.',$picname);
                              $saveinfo = true;
                          }
                                        //这里是修改的内容
                    $oldpicsize=GetImageSize($oldpic);
                    $oldwidth=$oldpicsize[0];
                    $oldheight=$oldpicsize[1];
                    if($oldwidth<=$cfg_ddimg_width && $oldheight<=$cfg_ddimg_height){
                      $litpic = $picname;
                    }else{
                          @ImageResize($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);
                    }//这里修改结束
                    }else{
                          $litpic = $picname;
                    }
                }
7.删除出错的文章

    有时候大家在添加文章的时候没添加成功 显示什么将错误报告给dede  据我发现好像文章已经被录到dede_full_search这个表里面了  在后台文章管理里面看不见  但是全站搜索的时候又能搜索出来 而且打开的时候显示参数错误 这个问题困扰了很多人 我将我的处理办法帖出来

    一条sql语句搞定 在后台系统管理 sql命令运行器里面输入
    delete from dede_full_search where url=''
8.DedeCMS评论最多的文章排行版代码调用
并且调用第一条评论内容
    {dede:sql sql="SELECT url,arctitle,msg, count( * ) AS count FROM dede_feedback GROUP BY
    arctitle
    ORDER BY count DESC LIMIT 0,10"}
    <li><a href="[field:url/]">[field:arctitle/]</a>[field:msg/]</li>
    {/dede:sql}

在wordpress原主题模版上手动添加tag标签

By lwl0606, 2009年10月11日

很多模板上没有tag标签,如果你使用的是老主题而想加tag标签的话,你可以这样操作:

在" \wordpress\wp-content\themes\themename "目录找到下面两个文件:

index.php
single.php

一般需要添加tag标签的就是这个两个文件,在需要添加的地方添加如下的代码:

这里列举了三种定义显示效果的代码

<?php the_tags('Article Tags>> ', ' | ' , "); ?>

<?php the_tags('Tags<LI>', '<BR />' , '</LI>'); ?>

配合修改" Style.css ",显示成列表方式比较漂亮

<?php the_tags('Tags<LI>', '<LI>' , '</LI>'); ?>

如果有中文符号别望了改成英文的.

网页禁止右键代码

By lwl0606, 2009年09月27日

网页禁止右键代码
<!--禁止鼠标右键代码-->
<noscript><iframe src=*.html></iframe></noscript>
<script language=javascript>
<!--
if (window.Event)
document.captureEvents(Event.MOUSEUP);
function nocontextmenu(){
event.cancelBubble = true
event.returnValue = false;
return false;
}
function norightclick(e){
if (window.Event){
if (e.which == 2 || e.which == 3)
return false;
}
else
if (event.button == 2 || event.button == 3){
  event.cancelBubble = true
  event.returnValue = false;
  return false;
}
}
document.oncontextmenu = nocontextmenu; // for IE5+
document.onmousedown = norightclick; // for all others
//-->
</script>