Archive for the ‘wordpress’ category

PDO for WordPress と Google Sitemaps Generator for WordPress

2010/05/23

Google Sitemaps Generator for WordPress は、WordpressでXML-Sitemapを生成するのに使われる定番プラグインの一つ。でも、このプラグインは、どういうわけかmysqlに微妙に依存していて、SQliteの環境では動作しない。

今日、Googleのウェブマスターツールを見るとサイトマップがエラーになっていて超焦ったのだけど、通知が来たからと、このプラグインをバージョンアップしたことを思いだした。変更が必要だということをすっかり失念していた。

パッチをブログに貼ったと思ってたけどどうもそうはしてなかったみたいなので再作成して、今度は忘れないように貼っておくことにする。

--- sitemap-core.php.orig    2010-04-03 01:07:43.000000000 +0900
+++ sitemap-core.php    2010-05-22 23:59:40.000000000 +0900
@@ -1787,25 +1787,16 @@
}

if($this->GetOption("b_safemode")===true) {
-                $postRes = mysql_query($sql,$wpdb->dbh);
+                $postRes = $wpdb->get_results($sql);
if(!$postRes) {
-                    trigger_error("MySQL query failed: " . mysql_error(),E_USER_NOTICE); //E_USER_NOTICE will be displayed on our debug mode
+                    trigger_error("query failed: ",E_USER_NOTICE); //E_USER_NOTICE will be displayed on our debug mode
return;
}
} else {
-                $con = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD,true);
-                if(!$con) {
-                    trigger_error("MySQL Connection failed: " . mysql_error(),E_USER_NOTICE);
-                    return;
-                }
-                if(!mysql_select_db(DB_NAME,$con)) {
-                    trigger_error("MySQL DB Select failed: " . mysql_error(),E_USER_NOTICE);
-                    return;
-                }
-                $postRes = mysql_unbuffered_query($sql,$con);
+                $postRes = $wpdb->get_results($sql);

if(!$postRes) {
-                    trigger_error("MySQL unbuffered query failed: " . mysql_error(),E_USER_NOTICE);
+                    trigger_error("unbuffered query failed: " ,E_USER_NOTICE);
return;
}
}
@@ -1840,7 +1831,7 @@

//Cycle through all posts and add them
-                while($post = mysql_fetch_object($postRes)) {
+                foreach( $postRes as $post ) {

//Fill the cache with our DB result. Since it's incomplete (no text-content for example), we will clean it later.
$cache = array(&$post);
@@ -1936,7 +1927,6 @@
unset($postRes);
unset($prioProvider);

-                if($this->GetOption("b_safemode")!==true && $con) mysql_close($con);
}
if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Postings"));
}

“>”が相変わらず化けるなぁ。使うときは気をつけないと。Syntax Highlighter for WordPressに変えてみた。

akismetに参加

2010/03/20

spamコメントが目立つようになってきたので、akismetネットワークに参加してみる。wordpress.comアカウントは前に作ってあるから、過去メールをあさって、APIキーを発掘。さて、どの程度の効果がある物なのかしらん。

続続 ktai-style

2010/02/10

ktai-style の新しいベータ版が出ていたので更新したのだが、アドエスで携帯表示にならない件は直ってたけど、PC表示ができないのは相変わらず。

ちょっとコードを追いかけてみたけど、KtaiStyleクラスのコンストラクタの中で、$this->ktaiを使っているのに、そのオブジェクト(KtaiServices)が生成されるのが、コンストラクタが終了した後であることが問題であるように思える。

ということがわかっても、後どうすればよいかがわからない。コンストラクタ内部でKtaiServicesをインスタンス化しようとしてもエラーになるし……。

投稿ページから特定カテゴリの記事を除外する

2010/01/30

今後のことを考えて、投稿ページから特定のカテゴリを除外したいと考えていた。

最初は、テーマをいじって出さないようにしようと思ってCodexを漁ったりしていたのだが、ググってる途中で、使えそうなプラグインを発見した。

» Read more: 投稿ページから特定カテゴリの記事を除外する

続 Ktai Style

2010/01/26

先日の投稿のパッチだけだと、「PC表示にする」が動かないなぁ。もうちょっと考えるかな。

Ktai Style

2010/01/24

Ktai Style Pluginを導入しているのだが、更新通知が来たので更新したところ、アドエスが携帯表示じゃなくなった。operators/services.phpの86行目をコメントアウト。バグかな。

--- operators/services.php.orig	2010-01-24 00:08:35.000000000 +0900
+++ operators/services.php	2010-01-24 21:07:40.000000000 +0900
@@ -83,7 +83,7 @@
	} elseif (preg_match('!PDA; SL-\w+!', $ua, $name)) {
		$ktai = new KtaiService_Other_Japan($ua);
		$ktai->term_name = $ktai->term_name ? $ktai->term_name : $name[1];
-	} elseif (preg_match('!(^Nokia\w+|Opera Mini|Opera Mobi|PalmOS\b|Windows CE\b)!', $ua, $name)) {
+//	} elseif (preg_match('!(^Nokia\w+|Opera Mini|Opera Mobi|PalmOS\b|Windows CE\b)!', $ua, $name)) {
	} elseif (preg_match('!(^Nokia\w+|^BlackBerry[0-9a-z]+/|Opera Mobi|PalmOS\b|Windows CE\b)!', $ua, $name)) {
		$ktai = new KtaiService_Other($ua);
		$ktai->term_name = $ktai->term_name ? $ktai->term_name : $name[1];

パッチが綺麗に貼れないなぁ。WP-Syntaxを導入してみた。インデント崩れてたのとか手で直したのでパッチは当たらないかもです。

WordPressインストール

2010/01/19

まあ、そういうわけで、WordPressをインストールしたのです。

インストールするにあたって、やりたいことがひとつありました。

トップページをWordPressで管理しつつ、ブログがサブディレクトリにあるように見せかけること

ということです。

これ自体は、何ヶ所か言及されてるサイトがあったり、つい最近もフォーラムでの発言もあったしで、ありがちな要件なのかもしれない。

それで、その通りにやったんですが、記事に正しくテンプレートが適用されずにデフォルトになってしまう。何故だなぜだとググりまくったりソースをおっかけたりしてたんですが、結局、パーマリンクの設定による、ということがわかった。

できるだけデフォルトっぽく見せたかったので、当初、パーマリンクを、/blog/?p=%post_id%とかしてたのだが、どうもここでクエリ文字列があると、投稿ページと認識されてしまうようで、最終的には、/blog/archives/%post_id%って形でクエリ文字列を使わないようにした。

微妙に敗北感がただようなか、何となくブログを始めてみるの巻、でした。