WP-T-WAP URL静态化

WP-T-WAP Version 1.9

Update:2008.06.26

发现一个错误.对 paged=?分页参数只是重写为 根目录的分页.而这个参数实际上还控制着category和tag页的分页.因此需要增加两句RewriteRule代码,对_get_pagenum_link函数修改也要重写.

文中错误之处已经更改

WP-T-WAP是很好的Wordpress WAP插件.已经进入WP官方插件库.

安装WP-T-WAP后,可以通过http://yourBlogDomain.com/wap/地址WAP浏览/管理你的Blog. 如果绑定域名,则可以通过wap.yourBlogDomain.com 访问。默认生成的内部链接地址是index.php?p= 形式。 通过修改,可以使其链接URL静态化
 
以偶的Blog为例,WP安装在 oogami.name
绑定wap.domain.com 域名到WP目录下wap文件夹

编辑wap文件夹下.htaccess文件,加入下面代码:

RewriteEngine On
RewriteBase /
RewriteRule ^post/([0-9]+)$ index.php?p=$1 [L]
RewriteRule ^comment/([0-9]+)$ comments.php?p=$1 [L]
RewriteRule ^category/([0-9]+)$ index.php?cat=$1 [L]
RewriteRule ^tag/(.*)$ index.php?tag=$1 [L]
RewriteRule ^page/([0-9]+)$ index.php?paged=$1 [L]
RewriteRule ^category/(.*)/page/([0-9]+)$ index.php?cat=$1&paged=$2
RewriteRule ^tag/(.*)/page/([0-9]+)$ index.php?tag=$1&paged=$2

然后就是修改插件文件,修改之处比较多

进入 WP安装目录下 /wp-content/plugins/wp-t-wap

index.php
注释掉69~70行:

if( strstr($url,’index.php’) == ” || strstr($url,’index.php’) == false )
// header(“location:index.php”);

两个 while (have_posts())主循环中下面句子:




把/index.php?p=改为 /post/
把/comments.php?p=改为/comment/

找到下面句子


把下面的comments.php?p同样改掉

functions.php 改下面几处

function _get_tag_link( $tag_id ) {
$tag = &get_term($tag_id, ‘post_tag’);
if ( is_wp_error( $tag ) )
return $tag;
$slug = $tag->slug;
$taglink = ‘?tag=’ . $slug;
return apply_filters(‘tag_link’, $taglink, $tag_id);
}

把$taglink = ‘?tag=’ . $slug; 改为 $taglink = ‘http://wap.oogami.name/tag/’ . $slug;

搜索这句,共有两处:

$thelist .= ‘name) . ‘” ‘ . $rel . ‘>’ . $category->name.’‘;

把?cat= 改为 http://wap.oogami.name/category/

修改function _get_permalink函数


($id = 0) {

$post = &get_post($id);

if ( empty($post->ID) ) return FALSE;

return _get_wap_home() . “/index.php?p=” . $post->ID;
}

把/index.php?p= 改为/post/

修改function _wap_footer 函数中一句:



把 index.php去掉

最后,改_get_pagenum_link函数


if ( !$using_permalinks ) {
$base = trailingslashit( _get_wap_home() );

if ( $pagenum >1 ) {
$result = add_query_arg( ‘paged’, $pagenum, $base . $request );
} else {
$result = $base . $request;
}
}

首先在这段代码上面加一句:
$request = preg_replace(‘/\/page\/[0-9]*$/i’,”, $request);

然后注释掉$result = add_query_arg( ‘paged’, $pagenum, $base . $request );用下面替换其
$result = $base . $request . ‘/page/’ . $pagenum ;

修改comments.php
把第21行改为

: ï¼~Z

至此,WP-T-WAP全部静态化完成.(admin登陆后的管理链结未静态化)
演示见偶Blog WAP版:
wap.oogami.name

6 Responses to “WP-T-WAP URL静态化”


Comments are currently closed.