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 Replies to “WP-T-WAP URL靜態化”

  1. 雖然可能對搜索好一些,不過現在我對做靜態化沒什麼興趣了,我又怕靜態化以後有些插件又有問題,又要去解決~~

  2. @Ozzy
    – –

    @一億度
    – –

    @Poshi
    其實對SEO沒啥影響,WAP頁面不需要被收錄.主要是看著爽

    @沙風
    。 。 。這個。偶寫的是把WA-T-WAP生成的 WAP頁面URL鏈接靜態化 .不是如何實現WAP瀏覽

Comments are closed.