WordPress Mobile PackWordPress Mobile Pack

最近、うちは携帯でブログの管理したりが多くなり、なんだかモバイル向けのインタフェースのほうが携帯でいろいろのをいじりやすいため、プラグインの検索にはWordPress Mobile Packが見つかって、それを入れてみた。デスクトップブラウザまた携帯ブラウザのを確定されてから自動的にふさわしいインタフェースに切り替えられ、しかもモバイル向けの管理パネルのがあるから、よぉくモバイルでもブログの管理をする僕にはほんまにめちゃ便利で役に立ってるんだね。

しかし、そのプラグインにはうちのWordPressの設定にはちょっと不具合が出た。WordPress をインストールしたディレクトリとは別のディレクトリにホームページを設定する場合にはWordPress Mobile Packのモバイルテーマには縮小されてる写真のパス及び管理パネルのパスはうまく設定されなくなるんだ。

わかりやすく説明するとこうと語ればいいかな。

WordPressの管理→一般設定には
WordPressのURLはexample.com と ブログのURLはexample.com/blog にしてると、
管理のURLはexample.com/blog/wp-adminとなり、写真のパスはexample.com/blog/から始まるだが。
WordPress Mobile Packはexample.com/wp-adminと設定されてしまい、縮小されてる写真のパスもその/blog/の欠けてるんだ。

もちろん、もしもWordPressのURLもブログのURLも一緒ならば、上記のようなバグがWordPress Mobile Packから出てこないけど、こっちはドメインのそのままをブログのURLにしたいが、WordPress Mobile Packのそのバグに譲ったりするつもりはなくて、ネットで調べたら、修復できるパッチが見つかった。

[Plugin: WordPress Mobile Pack] Links in admin panel incorrect (3 posts)

--- plugins/wpmp_switcher/pages/mobile_admin.php.orig Wed Feb  3 21:48:00 2010
+++ plugins/wpmp_switcher/pages/mobile_admin.php Wed Feb  3 22:22:46 2010
@@ -29,7 +29,7 @@
   wpmp_ms_mobile_admin();
   function wpmp_ms_mobile_admin() {
-    $base = get_option('home');
+    $base = get_option('siteurl');
     if (($user = wp_get_current_user())==null || $user->ID==0) {
       header("Location: $base/wp-login.php?redirect_to=" . urlencode($base) . "%2Fwp-admin%2F");
@@ -75,7 +75,7 @@
   }
   function wpmp_msma_overview($menu) {
-    $base = get_option('home');
+    $base = get_option('siteurl');
     $post_count = wp_count_posts('post');
     $page_count = wp_count_posts('page');
     print "<p>";
@@ -104,12 +104,12 @@
       $not_first = true;
     }
     print "</ul></p>";
-    print "<p>" . sprintf(__("...or <a%s>return to the site</a>", 'wpmp'), " href='$base/'") . "</p>";
+    print "<p>" . sprintf(__("...or <a%s>return to the site</a>", 'wpmp'), " href='" . get_option('home') . "/'") . "</p>";
     print "<p>" . __("A subset of the full WordPress administration is available through this mobile interface.", 'wpmp') . "</p>";
   }
   function wpmp_msma_junior($menu) {
-    $base = get_option('home');
+    $base = get_option('siteurl');
     print "<h3>" . __("Sorry! Permission denied...", 'wpmp') . "</h3>";
     print "<p>" . __("Only 'administrator' users can use the mobile admin panel.", 'wpmp') . "</p>";
     print "<p><a href='" . get_option('siteurl') . "$base/wp-login.php?action=logout'>" . __("Login as a different user", 'wpmp') . "</a> " . __("or", 'wpmp') . " <a href='$base/'>" . __("return to the site", 'wpmp') . "</a></p>";
@@ -173,7 +173,7 @@
   }
   function wpmp_msma_post_list() {
-    $base = get_option('home');
+    $base = get_option('siteurl');
     wp('orderby=modified');
     if(have_posts()) {
       global $post;
@@ -263,7 +263,7 @@
   }
   function wpmp_msma_edit_comment(&$comment, $full = false) {
-    $base = get_option('home');
+    $base = get_option('siteurl');
     $id = $comment->comment_ID;
     $content = strip_tags($comment->comment_content);
     $title = strip_tags($comment->comment_author);
@@ -307,7 +307,7 @@
   function wpmp_msma_options_list() {
   global $wpdb;
-    $base = get_option('home');
+    $base = get_option('siteurl');
$count = $wpdb->get_results("SELECT count(*) as cnt FROM $wpdb->options " . wpmp_msma_options_filter());
$count = ($count[0]->cnt);
     $size = 10;
@@ -428,7 +428,7 @@
   function wpmp_msma_check_referer() {
-    $base = get_option('home');
+    $base = get_option('siteurl');
     $admin = "$base/wp-admin";
     $referer = $_SERVER['HTTP_REFERER'];
     if (substr($referer, 0, strlen($admin)) != $admin) {
--- plugins/wpmp_switcher/pages/mobile.php.orig Wed Feb  3 22:25:57 2010
+++ plugins/wpmp_switcher/pages/mobile.php Wed Feb  3 22:27:52 2010
@@ -73,6 +73,9 @@
       <?php
         if($menu) {
           $base = get_option('home');
+   if ($title == 'Admin') {
+     $base = get_option('siteurl');
+   }
           print '<div id="menu"><ul>';
           $page = $_SERVER['REQUEST_URI'];
           if(substr($page, -9)=="/wp-admin") {

最初は、上記のパッチを見て、どうしたらいいかよくわからなかったが、詳しく読んでみたら、とりあえず、ソースコードなかの符号の+だと追加すべき、-だと削除すべきなんだ。掲示板の投稿者の説明によると、WordPress Mobile Packの作者はリンクの指定のget_optionはsiteurlよりhomeにしたため、このバグがでるそうなんだ。もちろん、そのわけで、wpmp_transcoder.phpのソースコードにも同じような修正したら、縮小されてる写真のパスも正しくなるんだね。最近,我多咗用手機唻管理我個部落格,總覺得以手機版的介面唻管理的話會易好多,所以於外掛搜尋搵到WordPress Mobile Pack把其安裝唻試吓.可就桌面電腦瀏覽器或手機瀏覽器作出確定並自動切換至相應的介面,而且仲支援埋手機版的管理介面添,對於常用手機作部落格管理的我真係好方便又好用啊.

不過,呢個外掛與WordPress的設定上存在住bug.就係當博客地址和WordPress的安装地址不相同的時候WordPress Mobile Pack的手機介面的縮圖路徑以及館理介面的路徑設定不對情況出現.

以下可能係簡單啲說明吧.

WordPress旳管理→一般設定

WordPress的URL設example.com 以及 部落格的URL設example.com/blog 的時候,

管理的URL會變成example.com/blog/wp-admin,而圖片的開始路徑會變成為example.com/blog/ .

而WordPress Mobile Pack就會設定成為example.com/wp-admin,而縮圖的路徑也會缺了/blog/的

當然啦,若果WordPress的URL以及部落格的URL都係設為一樣的話咁就唔會係WordPress Mobile Pack上出現bug了,但係我想就咁把域名變成部落格的路徑,所以唔諗住就WordPress Mobile Pack的有關bug而作出讓步的,於網上搵到修復patch啊.

[Plugin: WordPress Mobile Pack] Links in admin panel incorrect (3 posts)

--- plugins/wpmp_switcher/pages/mobile_admin.php.orig Wed Feb 3 21:48:00 2010
+++ plugins/wpmp_switcher/pages/mobile_admin.php Wed Feb 3 22:22:46 2010
@@ -29,7 +29,7 @@
wpmp_ms_mobile_admin();
function wpmp_ms_mobile_admin() {
- $base = get_option('home');
+ $base = get_option('siteurl');
if (($user = wp_get_current_user())==null || $user->ID==0) {
header("Location: $base/wp-login.php?redirect_to=" . urlencode($base) . "%2Fwp-admin%2F");
@@ -75,7 +75,7 @@
}
function wpmp_msma_overview($menu) {
- $base = get_option('home');
+ $base = get_option('siteurl');
$post_count = wp_count_posts('post');
$page_count = wp_count_posts('page');
print "<p>";
@@ -104,12 +104,12 @@
$not_first = true;
}
print "</ul></p>";
- print "<p>" . sprintf(__("...or <a%s>return to the site</a>", 'wpmp'), " href='$base/'") . "</p>";
+ print "<p>" . sprintf(__("...or <a%s>return to the site</a>", 'wpmp'), " href='" . get_option('home') . "/'") . "</p>";
print "<p>" . __("A subset of the full WordPress administration is available through this mobile interface.", 'wpmp') . "</p>";
}
function wpmp_msma_junior($menu) {
- $base = get_option('home');
+ $base = get_option('siteurl');
print "<h3>" . __("Sorry! Permission denied...", 'wpmp') . "</h3>";
print "<p>" . __("Only 'administrator' users can use the mobile admin panel.", 'wpmp') . "</p>";
print "<p><a href='" . get_option('siteurl') . "$base/wp-login.php?action=logout'>" . __("Login as a different user", 'wpmp') . "</a> " . __("or", 'wpmp') . " <a href='$base/'>" . __("return to the site", 'wpmp') . "</a></p>";
@@ -173,7 +173,7 @@
}
function wpmp_msma_post_list() {
- $base = get_option('home');
+ $base = get_option('siteurl');
wp('orderby=modified');
if(have_posts()) {
global $post;
@@ -263,7 +263,7 @@
}
function wpmp_msma_edit_comment(&$comment, $full = false) {
- $base = get_option('home');
+ $base = get_option('siteurl');
$id = $comment->comment_ID;
$content = strip_tags($comment->comment_content);
$title = strip_tags($comment->comment_author);
@@ -307,7 +307,7 @@
function wpmp_msma_options_list() {
global $wpdb;
- $base = get_option('home');
+ $base = get_option('siteurl');
$count = $wpdb->get_results("SELECT count(*) as cnt FROM $wpdb->options " . wpmp_msma_options_filter());
$count = ($count[0]->cnt);
$size = 10;
@@ -428,7 +428,7 @@
function wpmp_msma_check_referer() {
- $base = get_option('home');
+ $base = get_option('siteurl');
$admin = "$base/wp-admin";
$referer = $_SERVER['HTTP_REFERER'];
if (substr($referer, 0, strlen($admin)) != $admin) {
--- plugins/wpmp_switcher/pages/mobile.php.orig Wed Feb 3 22:25:57 2010
+++ plugins/wpmp_switcher/pages/mobile.php Wed Feb 3 22:27:52 2010
@@ -73,6 +73,9 @@
<?php
if($menu) {
$base = get_option('home');
+ if ($title == 'Admin') {
+ $base = get_option('siteurl');
+ }
print '<div id="menu"><ul>';
$page = $_SERVER['REQUEST_URI'];
if(substr($page, -9)=="/wp-admin") {

起初,睇完上記的patch,我都唔知應點做好,做詳細讀吓之後,總之就係source code裏頭啲符號有個+即係要添加上去的,有個-即係要刪除的.按討論區的投稿者說明,WordPress Mobile Pack的作者把連結的指定get_option,如其設siteurl,返設了home,所以才會出現呢個bug的.當然啦,同樣哋,把wpmp_transcoder.php的source code作同樣的修改,咁啲縮圖的路徑都會變返正確架啦.

Share and Enjoy:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • Google Buzz
  • Live
  • MSN Reporter
  • MySpace
  • RSS
  • email

About カガヤキ