WordPress復活 && アップグレード(2.0.2)

 announce, article  Comments Off on WordPress復活 && アップグレード(2.0.2)
Mar 132006
 

Drupal復活するも移行作業ミスでWordPress停止といったことがありましたが、無事復活させることができました。
DowngradeしてからUpgradeした際、AdministratorユーザがSubscriberレベルに権限ダウンしていたようです。
usermetaテーブルのwp_capabilitiesを以下の通り書き換えて対応完了 🙂
a:1:{s:10:"subscriber";b:1;}

a:1:{s:13:"administrator";b:1;}

また、動かなくなってる間に2.0.2がリリースされており、Security Fixのようですので、早速アップデートしています。手順はざっとこんな感じ。

  • プラグイン無効化
  • wp-contents/themes/ の自分で入れた分をコピー
  • wp-contents/plugins/ の自分で入れた分をコピー
  • wp-contents/uploads/ コピー
  • wp-images/ コピー
  • wp-config.php コピー
  • .htaccess コピー
  • wp-admin/upgrade.php 実行
  • プラグイン有効化

Drupal復活するも移行作業ミスでWordPress停止

 announce, article  Comments Off on Drupal復活するも移行作業ミスでWordPress停止
Mar 112006
 

データを破壊してしまったDrupalを復活させました。
以前のWordPressからDrupalへの移行のようにおこなうのですが、こちらのMigration UtilityはWordPress 1.5が前提になります。
WordPressは2.0.1にしてしまってたので、こちらの
WordPress Database Downgrader
を利用して1.5にダウングレードしてからDrupalに移行します。

その後WordPressを再びアップグレードしたのですが、ログインできなくなってしまいました 🙁
皆様お試しになる際は、DBのバックアップを取得することをお奨めします orz

#usermetaテーブルが変になったようなのですが、直すの面倒くさい。

Mar 032006
 

WordPressのthemeをSimplaにしてから、サイドバーが時々消えるようになってしまいました。
消えるといっても下部に表示されているだけであって、コンテンツの右に回りこませることができていないように見えます。今のところFirefoxでしか起こりません。
Googleさんに聞いてみると、それらしいキーワードでいろいろヒットします。

とはいえ、他の2カラムなテーマを使っていても同じ事象にはなりませんし、CSS Varidatorでのチェックも問題なく、なんとも原因がわかりません。

IE6にはPeek-a-booというバグがあるようですが、こちらもちょっと事象が違うような…

探してみるといろいろバグがあるものなんですね。
素直に以前のthemeに戻したほうがいいのかなー。

Mar 022006
 

またWordPressプラグインでの日本語文字化け解消方法について、です。素直に日本語化されたプラグインを探してこい、って突っ込みはさておき。
先日StatTraqでの日本語表示でStatTraqプラグインでの日本語文字化け解消方法を説明しましたが、ほぼ同じような考え方でbsuite WordPress Plugin (b2 release)も日本語文字化けを解消できます。
bsuiteの場合、正しく表示できなくなるのはTop Incoming Searchesでの日本語検索文字だけでした。
検索文字列はrefererから取得している情報で、DBにはrefererのままurlencodeされた状態で記録されています。
これが直前にブラウザで利用していた文字コードのままで記録されていますので、それをSELECTしてueldecode()して出力する際に、文字コードをを適切なものに変換してやる必要があります。
mb_convert_encoding()で文字コードを変換するのですが、今回は関数が使用可能かチェックするコードも入れてみました。

--- bsuite/bsuite.php.default   Tue Feb 14 22:33:37 2006
+++ bsuite/bsuite.php   Thu Mar  2 10:53:56 2006
@@ -412,7 +412,11 @@
                        if($wrap > 0)
                                $linktext = wordwrap($linktext, $wrap, "<br />\n", 1);

-                       $report .= $before . "<a href=\"" . $url . "\" title=\"" . ($row->tooltip) . "\">" . $linktext . "</a>" . ($row->note) . $after;
+                       if(function_exists('mb_convert_encoding')){
+                               $report .= $before . "<a href=\"" . $url . "\" title=\"" . ($row->tooltip) . "\">" . (mb_convert_encoding($linktext, get_settings('blog_charset'), "AUTO")) . "</a>" . ($row->note) . $after;
+                       }else{
+                               $report .= $before . "<a href=\"" . $url . "\" title=\"" . ($row->tooltip) . "\">" . $linktext . "</a>" . ($row->note) . $after;
+                               }
                        }
                return($report);
                }
Mar 012006
 

以前Stattraqプラグインを入れて、「HTTPヘッダやMETAタグでUTF-8返しても化ける」なんてことを書きましたが、解決できました。参考にさせていただいたのは以下のサイトです。
MMRT daily life » WP StatTraq 日本語版
ここからリンクされているサイトにもいろいろ情報があり、要は

  • 検索文字をmb_convert_encoding()で適切な文字コードに変換する
  • htmlentities()の代わりにhtmlspecialchars()を使う

ようにすればOKでした。
結局Capcha!,StatTraqプラグインで書いたindex.phpとaccess_detail.phpでのヘッダ出力の変更の他に、以下の2ファイルを変更しています。

--- wp-stattraq/reporter/query_strings.php.default      Wed Mar  1 20:56:46 2006
+++ wp-stattraq/reporter/query_strings.php  Thu Mar  2 03:13:35 2006
@@ -84,8 +84,9 @@
 if($results)
 {
 foreach($results as $row) {
+       $row->search_phrase = mb_convert_encoding($row->search_phrase,get_settings('blog_charset'),"AUTO");
        echo '<tr><td style="font-size: smaller;"><a href="http://search.yahoo.com/search?p=' . urlencode($row->search_phrase) . '" title="Search Yahoo!">Y</a>|<a href="http://search.msn.com/results.aspx?q=' . urlencode($row->search_phrase) . '" title="Search MSN">M</a>' .
-                                             '<td><a href="http://www.google.com/search?q=' . urlencode($row->search_phrase) . '" title="Search Google">' . htmlentities($row->search_phrase) .'</a></td><td class="right">'.$row->cnt.'</td>';
+                                             '<td><a href="http://www.google.com/search?q=' . urlencode($row->search_phrase) . '" title="Search Google">' . htmlspecialchars($row->search_phrase) .'</a></td><td class="right">'.$row->cnt.'</td>';
 }
 }
 else
--- wp-stattraq/reporter/summary.php.default  Wed Mar  1 20:56:47 2006
+++ wp-stattraq/reporter/summary.php  Thu Mar  2 03:12:54 2006
@@ -137,7 +137,7 @@
                       $blogAddress = get_settings('home') . '/' . get_settings('blogfilename') . '?p=';
                        foreach($results as $row)
                        {
-                       ?><tr class="<?php echo ($i % 2 == 0 ? 'even' : 'odd' );?>"><td><?php echo ++$i;?></td><td><a href="<?php echo $blogAddress , $row->article_id;?>"> <?php echo htmlentities(stripslashes($row->post_title));?></a></td><td class="right"><?php echo number_format($row->cnt);?></td></tr>
+                       ?><tr class="<?php echo ($i % 2 == 0 ? 'even' : 'odd' );?>"><td><?php echo ++$i;?></td><td><a href="<?php echo $blogAddress , $row->article_id;?>"> <?php echo htmlspecialchars(stripslashes($row->post_title));?></a></td><td class="right"><?php echo number_format($row->cnt);?></td></tr>
 <?php
                        }
                       }
@@ -206,7 +206,7 @@
                        foreach($results as $row){
                             $short_url = substr($row->ref,0, 50);
                        ?>
-                            <tr class="<?php echo ($i % 2 == 0 ? 'even' : 'odd' );?>"><td><?php echo ++$i;?></td><td><a href="<?php echo htmlentities($row->ref);?>" title="<?php echo htmlentities($row->ref);?>"><?php echo $short_url;?> </a></td><td class="right"><?php echo number_format($row->cnt);?></td></tr>
+                            <tr class="<?php echo ($i % 2 == 0 ? 'even' : 'odd' );?>"><td><?php echo ++$i;?></td><td><a href="<?php echo htmlspecialchars($row->ref);?>" title="<?php echo htmlspecialchars($row->ref);?>"><?php echo $short_url;?> </a></td><td class="right"><?php echo number_format($row->cnt);?></td></tr>
                        <?php
                        }
                       }
@@ -248,6 +248,7 @@
                       if($results){
                        $search_phrase = "";
                        foreach($results as $row){
+                               $row->search_phrase = mb_convert_encoding($row->search_phrase,get_settings('blog_charset'),"AUTO");
                                $search_phrase = urlencode($row->search_phrase);
                        ?>
                        <tr class="<?php echo ($i % 2 == 0 ? 'even' : 'odd' );?>"><td><?php echo ++$i;?></td><td style="font-size: smaller;"><a href="http://search.yahoo.com/search?p=<?php echo $search_phrase;?>" title="Search Yahoo!">Y</a>|<a href="http://search.msn.com/results.aspx?q=<?php echo $search_phrase ;?>" title="Search MSN">M</a></td><td><a href="http://www.google.com/search?q=<?php echo $search_phrase;?>" title="Search Google"><?php echo $row->search_phrase;?> </a></td><td class="right"><?php echo number_format($row->cnt);?></td></tr>

参考にさせていただいたサイトと違うのは、

  • mb_convert_encoding()での出力文字セットを、UTF-8決めうちではなくget_settings(‘blog_charset’)で決定している
  • wp-stattraq/reporter/referrer.phpでもhtmlentities()を使っているが、こちらは化けないので直してない

ことです。

Feb 202006
 

WordPressでは、PostとPage、2種類の記事を書くことができます。Postはいわゆるブログ、Pageはブログではないページを記述するためのものです。

便利なのですが、PageのほうにはPostと違ってDraftやPrivate(非公開)として保存する機能が今のところありません。
Pluginとかないのかなぁ、と思ってたらやはりニーズはあるようで、フォーラムにいくつか話題があがってます。

後者の記述では次期バージョンに向けて実装予定とのこと。
svn trunkを覗いた雰囲気ではまだのようでしたが楽しみです。自分ではhackできないもんで… orz

Feb 132006
 

WordPressのプラグインをいくつか入れてみました。

  • Capcha!
    Comment投稿時に画像に表示された英数字を入力してもらうことで、ロボットからの自動ポストをしにくくするプラグインです。
  • StatTraq
    アクセス統計などを記録して解析可能にするプラグインです。UTF-8の日本語版も配布されています。私はついでにstattraq-button-pluginも入れました。

StatTraqはそのままだとContent-TypeのHTTPヘッダやMETAタグが返らないようなので、ちょっといじりました。

$ diff -u wp-stattrqa/index.php.deafault wp-stattrqa/index.php
--- wp-stattraq/index.php.deafault  2005-06-21 23:04:04.000000000 +0900
+++ wp-stattraq/index.php   2006-02-14 11:37:52.609387800 +0900
@@ -7,6 +7,7 @@
 {
        require_once('../wp-admin/admin.php');
 }
+@header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));

 $year = (int)getVar('year',date("Y"));
 $month = (int)getVar('month',date("m"));
@@ -45,6 +46,7 @@
        <style type="text/css">
                @import 'styles/normal.css';
        </style>
+       <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_settings('blog_charset'); ?>" />
 
 </head>
 
 <body>
$ diff -u wp-stattraq/access_detail.php.default wp-stattraq/access_detail.php
--- wp-stattraq/access_detail.php.default   2006-02-14 11:07:06.360279800 +0900
+++ wp-stattraq/access_detail.php   2006-02-14 11:36:28.919869800 +0900
@@ -6,6 +6,7 @@
 {
        require_once('../wp-admin/admin.php');
 }
+@header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
 $line_id = getVar("line_id", null);
 $access_time = date("Y-m-d H:i:s");
 $ip_address = "0.0.0.0";
@@ -24,6 +25,7 @@
 <head>
        <title>StatTraq Access Detail</title>
        <link rel="stylesheet" type="text/css" title="style" href="styles/normal.css" />
+       <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_settings('blog_charset'); ?>" />
 </head>

 <body>

UIの日本語化が不要ならこれで十分なはず、と思ったのですがSummaryのタイトルやSearch Termsの検索文字が正しく表示されません。Page Viewsのタイトルは正常なのに 😕
素直にUTF-8日本語版を入れたほうが賢いかも。

WordPress 2.0.1

 article  Comments Off on WordPress 2.0.1
Feb 122006
 

drupalに移行してからというもの、WordPressで書いてたページを放置しっぱなしだったのですが、気が付いたら2.0.1がリリースされていたのでアップグレードしてみました。
あまり(というーかほとんど)カストマイズしていないので、非常に簡単です。

  • バックアップ取得
  • 新バージョンのアーカイブ展開
  • 旧コンテンツからwp-settings.phpをコピー
  • wp-admin/upgrade.php実行

あとは.htaccessを作り直して終了です。
詳細はUpgrading WordPressをご覧ください。