WordPress Multisite Nginx 的伪静态(Rewrite)规则

  WordPress是一个注重美学、易用性和网络标准的个人信息发布平台。WordPress 虽为免费的开源软件,但其价值是无法用金钱来衡量。使用WordPress可以搭建功能强大的网络信息发布平台,但更多的是应用于个性化的博客。针对博客的应用,WordPress能让您省却对后台技术的担心,集中精力做好网站的内容。

珂亦网络科技采用WordPress ,并开启了多站点功能,装了Domain Mapping插件来管理子站点。

把下面代码存为wordpress.conf,然后在域名配置文件(koryi.com.conf)中嵌入(include wordpress.conf)就行了,些规则也适合单用户WordPress

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
location ^~ /files/ {
    rewrite ^.*/files/(.*) /wp-includes/ms-files.php?file=$1 last;
}

location / {
    server_name_in_redirect off;
    port_in_redirect off;

    if (!-e $request_filename) {
        rewrite ^.+?(/wp-.*) $1 last;
        rewrite ^.+?(/.*\.php)$ $1 last;
        rewrite ^ /index.php last;
    }

    if (!-e $request_filename) {
        return 404;
    }
}

location ^~ /blogs.dir/ {
    internal;
    root /home/www/wordpress/wp-content;
}

WordPress文章ID不连续的解决方法

WordPress 3.1.2文章ID不连续的解决方法:
1.打开wp-config.php文件,在define (‘WPLANG’, ‘zh_CN’);下一行添加代码

1
2
define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL', false);

2.打开wp-admin\post-new.php(第46行)和wp-admin\post.php(第177行)两个文件,将下面的这段代码分别注释或删除。

1
wp_enqueue_script('autosave');

3.打开wp-admin\includes\post.php文件,找到代码

1
if ( $create_in_db ) {

在它的前一行添加

1
$create_in_db = false;

添加江阴印刷网主题自定义菜单并支持二级分类

如果你在使用江阴印刷网风格,而且升级到了WordPress3.0,那么你可以看看主题在3.0下首页的分类名不显示的解决办法,而这篇是使主题支持自定义菜单并支持二级分类。

编辑functions.php文件,在 include (TEMPLATEPATH . ‘/settings.php’); 下添加

1
2
3
4
5
6
7
8
9
register_nav_menus( array(
    'primary' => __( 'Primary Navigation', 'cnt1' ),
) );
   
function cnt1_page_menu_args( $args ) {
    $args['show_home'] = true;
    return $args;
}
add_filter( 'wp_page_menu_args', 'cnt1_page_menu_args' );

编辑header.php文件,查找下例代码
继续阅读

替换coolcode代码高亮插件为wp-syntax

终于把coolcode代码高亮插件替换为wp-syntax,wp-syntax 使用简单,显示方式简洁,视觉感官利落,对W3C也友好。

首先下载安装好wp-syntax,激活插件。
进入PHPMYADMIN替换原来coolcode的插件代码

1
2
UPDATE `wp_posts` SET `post_content` = replace (`post_content`,'<coolcode','<pre');
UPDATE `wp_posts` SET `post_content` = replace (`post_content`,'</coolcode','</pre');

wp-syntax是用以下代码,设置对应参数来完成 wp-syntax 高亮代码显示的,编辑文章时,选择HTML模式下
<pre lang=”LANGUAGE” line=”1″>要显示的代码</pre>
相关参数说明:
lang=”LANGUAGE”,在language处填写你要运行的代码语言,如css、php、html、javascript等;
line=”1″,1表示代码从第一行开始显示,可以不写,不写为全部显示。

wp-syntax 还支持下面代码:
abap, actionscript, actionscript3, ada, apache, applescript, aptsources, asm, asp, autoit, avisynth, bash, bf, blitzbasic, bnf, boo, c, cmac, caddcl, cadlisp, cil, cfdg, cfm, cobol, cpp-qt, cpp, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, 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, 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, winbatch, xml, xorg_conf, xpp, z80

如果你嫌每次都要切换到HTML模式,手工添加麻烦的话,你还可以利用WP-Syntax Button插件添加按钮到编辑框中。

解决江阴印刷网风格适应WordPress3.0

如果你正在使用江阴印刷网风格,而且升级到了WordPress3.0,会出现首页的分类名不显示,搜索了一下官方,找到了解决办法:

编辑主题的index.php文件,找到

1
$wp_query->is_category = false;

改为

1
$wp_query->is_category = true;

再找

1
<?php single_cat_title(); ?>

改为

1
<?php printf( __('%s','ctn1'), single_cat_title('', false)); ?>

这样就可以正确显示分类名,如果还有其它问题,可以留言解决。

WordPress主题的jQuery应用之TAB切换效果

首先在header.php的head标签中加载jQuery库

1
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

新建一个JS文件,在header.php的head标签中加载,JS文件中加入下例代码:

1
2
3
4
5
6
7
8
9
$(document).ready(function(){
$(".entry-foot span:first").addClass("current");  // 为第一个span添加 .current 的样式,默认选中
$(".entry-foot ul:not(:first)").hide();  //ul 不是第一个时隐藏
$(".entry-foot span").mouseover(function(){  // 鼠标移到 span 上时触发函数
$(".entry-foot span").removeClass("current");  //为第一个 span 移除 .current 样式
$(this).addClass("current");  //为触发的 span 添加样式
$(".entry-foot ul").hide();  // 隐藏 ul
$("."+$(this).attr("id")).fadeIn("slow");  // 这句是核心,class(.) 和触发 span 的ID 一致的 fadeIn(渐显)
});});

HTML代码如下:

1
2
3
4
5
6
7
8
9
<div class="tab">
<p>
<span ID="tab1">tab1</span>
<span ID="tab2">tab2</span>
<span ID="tab3">tab3</span></p>
<ul class="tab1">以 LI 形式呈现的 tab1 的内容</ul>
<ul class="tab2">以 LI 形式呈现的 tab2 的内容</ul>
<ul class="tab3">以 LI 形式呈现的 tab3 的内容</ul>
</div>

添加CSS代码如下:

1
2
3
4
5
6
7
.entry-foot{background-color:#FAFAFA;margin:5px 8px;padding:5px 10px;}
.entry-foot p span{background-color:#EFEFEF;border:1px solid
#CCCCCC;cursor:pointer;margin-right:6px;padding:2px 5px;}
.entry-foot p span.current{background-color:#FAFAFA; border-bottom-color:#fafafa;}
.entry-foot p{border-bottom:1px solid #CCCCCC;font-weight:bold;padding:0 10px 2px;}
.entry-foot li{border-bottom:1px dotted #CCCCCC;padding-bottom:3px;margin:5px 0;}
.entry-foot .mhot,.entry-foot.allhot{display:none;}

原文:http://www.xiaorsz.com/jquery-realize-tab-switch-effect/

WordPress主题的jQuery应用之幻灯片效果

首先在header.php的head标签中加载jQuery库

1
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

新建一个JS文件,在header.php的head标签中加载,JS文件中加入下例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
function slideSwitch() {
var $current = $("#slideshow div.current");
if ( $current.length == 0 ) $current = $("#slideshow div:last");
var $next = $current.next().length ? $current.next() : $("#slideshow div:first");
$current.addClass('prev');
$next.css({opacity: 0.0}).addClass("current").animate({opacity: 1.0}, 1000, function() {
$current.removeClass("current prev");
});
} $(function() {
$("#slideshow span").css("opacity","0.7");
$(".current").css("opacity","1.0");
setInterval( "slideSwitch()", 3000 );
});

HTML代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<div ID="slideshow">
    <div class="current">
        <a href="http://www.koryi.net/"><img src="1.jpg" alt="" /></a>
        <span>The First Image</span>
    </div>
    <div>
        <a href="http://www.koryi.net/"><img src="2.jpg" alt="" /></a>
        <span>The Second Image</span>
    </div>
    <div>
        <a href="http://www.koryi.net/"><img src="3.jpg" alt="" /></a>
        <span>Yes, thd third.</span>
    </div>
</div>

添加CSS代码如下:

1
2
3
4
5
6
#slideshow{position:relative;height:195px;width:425px;border:10px solid #ddd;margin:0 auto 15px;}
#slideshow div{position:absolute;top:0;left:0;z-index:3;opacity:0.0;height:195px;overflow:hidden;background-color:#FFF;}
#slideshow div.current{z-index:5;}
#slideshow div.prev{z-index:4;}
#slideshow div img{display:block;border:0;margin-bottom:10px;}
#slideshow div span{display:none;position:absolute;bottom:0;left:0;height:50px;line-height:50px;background:#000;color:#fff;width:100%;}

原文:http://www.happinesz.cn/archives/1015/

WordPress主题的jQuery应用之返回顶部滑动效果

首先在header.php的head标签中加载jQuery库

1
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

新建一个JS文件,在header.php的head标签中加载,JS文件中加入下例代码:

1
2
$('.top').click(function(){$('html,body').animate({scrollTop: '0px'}, 800);});
$('.bot').click(function(){$('html,body').animate({scrollTop:$('#footer').offset().top}, 800);});

在footer.php文件中加入代码:

1
2
3
4
<div ID="goto">
    <div class="top">顶端</div>
    <div class="bot">底端</div>
</div>

在CSS文件中添加下例代码:

1
2
3
4
5
*html #goto { position: absolute; top: expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight/2));}
#goto { position: fixed; left: 50%; top: 50%; bottom: auto; margin-left: -500px; z-index: 999;}
#goto .top, #goto .bot { width: 28px; height: 41px; margin: 5px 0; background-image: url('images/goto.gif'); background-repeat: no-repeat; display: block; text-indent: -9999px; cursor: pointer;}
#goto .top { background-position: 0 0;}
#goto .bot { background-position: 0 100%;}

原文:http://immmmm.com/added-sliding-effect-enhanced.html

WordPress主题的jQuery应用之标题提示

首先在header.php的head标签中加载jQuery库

1
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

新建一个JS文件,在header.php的head标签中加载,JS文件中加入下例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var sweetTitles = {
    x : 10,                            
    y : 20,                            
    tipElements : "a",                 
    init : function() {
        $(this.tipElements).mouseover(function(e){
            this.myTitle = this.title;
            this.myHref = this.href;
            this.myHref = (this.myHref.length > 30 ? this.myHref.toString().substring(0,30)+"..." : this.myHref);       // url 超过 30 个字符的部分用 ... 代替
            this.title = "";
            var tooltip = "<div id='tooltip'><p>"+this.myTitle+"<em>"+this.myHref+"</em>"+"</p></div>";
            $('body').append(tooltip);
            $('#tooltip')
                .css({
                    "opacity":"0.8",                   // 0.8 为透明度可自行根据喜好调整数字
                    "top":(e.pageY+20)+"px",
                    "left":(e.pageX+10)+"px"
                }).show('fast');   
        }).mouseout(function(){
            this.title = this.myTitle;
            $('#tooltip').remove();
        }).mousemove(function(e){
            $('#tooltip')
            .css({
                "top":(e.pageY+20)+"px",
                "left":(e.pageX+10)+"px"
            });
        });
    }
};
$(function(){
    sweetTitles.init();
});

在CSS文件中添加下例代码:

1
2
3
body div#tooltip { position:absolute;z-index:1000;max-width:220px;width:auto !important;width:220px;background:#000;text-align:left;padding:5px;min-height:1em;}
body div#tooltip p { margin:0;padding:0;color:#fff;font:12px verdana,arial,sans-serif; }
body div#tooltip p em { display:block;margin-top:3px;color:#f60;font-style:normal;font-weight:bold; }

如果你还用了@回复这样的jQuery提示效果的话会被标题提示遮掉,可以参照下面解决:
代码中的tipElements : “a”改成tipElements : “a:not(‘.atreply’)”来排除class为atreply的a标签,或者用tipElements : “a:not([href^=’#’])”来排除href为锚点的a标签

原文:http://leeiio.me/sweet-titles-for-jquery/

升级到 WordPress 2.7 了

都升级了几天了,今天才来写日志,谁让wp 2.7dz 7.0正式版的发布日期挨这么近呢,升级完精品收藏,接着就升级精品论坛,总算升级都一切正常。只是WP的主题挂件好像不能拖动了。

空下来,又把朋友的公司WP我的WP合并了,就是用的面向对象(OOP)的使用Wordpress系统 一拖N的用法

空间不大,只能节省一点是一点,而且每次升级WP三个都要升,还有插件,麻烦。其实方法还是蛮实用的,不过就是要注意:每个WP的永久链接都要设置成一样的,而uploads的目录,后台要每个设置成不一样的。

具体代码是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if($_SERVER["HTTP_HOST"]=="www.koryi.net" || $_SERVER["HTTP_HOST"]=="koryi.net"){
 
define('DB_NAME', '数据库名');
define('DB_USER', '用户名');
define('DB_PASSWORD', '密码');
define('DB_CHARSET', '');

}else if($_SERVER["HTTP_HOST"]=="www.marcodesign.cn" || $_SERVER["HTTP_HOST"]=="marcodesign.cn"){
 
define('DB_NAME', '数据库名');
define('DB_USER', '用户名');
define('DB_PASSWORD', '密码');
define('DB_CHARSET', 'utf8');

}else if($_SERVER["HTTP_HOST"]=="www.ydcpp.cn" || $_SERVER["HTTP_HOST"]=="ydcpp.cn"){
 
define('DB_NAME', '数据库名');
define('DB_USER', '用户名');
define('DB_PASSWORD', '密码');
define('DB_CHARSET', 'utf8');

}

如果你的define(‘DB_CHARSET’, ‘utf8’); define(‘DB_HOST’, ‘localhost’); define(‘DB_COLLATE’, ”); $table_prefix = ‘wp_’; define (‘WPLANG’, ‘zh_CN’);
都一样的话,可以放到上面那段代码的下面,我的由于有个编码定义了utf8会乱码,所以加上了编码设置。