Sqlite版でPing送信

あまり集客に執着はないものの、見てもらえればヤリ甲斐もあるかな~と思いPing送信まわりを調べてみた。

WordPressって公開済みの投稿を更新したときもPingを送るらしい。

はじめたばかりのブログは色々いぢるコトが多いし、そもそも設定している
Ping送信がちゃんと送られているか微妙だったのでプラグインを導入。

Smart Update Pinger

  • 新規投稿のみPing送信
  • Ping送信のログを表示
  • 手動でもPing送信可能

という便利ツールです。

早速手動でPingを送信してみると、
半分がエラー・・・orz

良い機会だしPing一括配信サービスの Pingoo! に登録してみる。
ここ一箇所にPingを送ると、色んなPingサーバーにまとめて送信してくれます。

意気揚々と新しい投稿を書いて公開してみたところ Smart Update Pinger でエラーが。。。

Warning: mysql_query() [function.mysql-query]: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

まあブログのネタにはなるから良いけどさw

データベースのアクセスにmysql_query()が使われてるのが原因っぽい。

		$row = mysql_fetch_array(mysql_query(
			"SELECT post_date,post_modified
			FROM $wpdb->posts
			WHERE id=$id"));

		# if time when created equals time when modified it is a new post,
		# otherwise the author has edited/modified it
		if($row["post_date"] == $row["post_modified"])
		{

なので無理やりMySQLのライブラリを使わないように修正。

		$row = $wpdb->get_row(
			"SELECT post_date,post_modified
			FROM $wpdb->posts
			WHERE id=$id");

		# if time when created equals time when modified it is a new post,
		# otherwise the author has edited/modified it
		if($row->post_date == $row->post_modified)
		{

ついでに最新のログが下に表示されるのが見づらいので

		$lines = array_slice($lines, count($lines) - $num);
		$msg = "";
		foreach($lines as $line)
			$msg .= trim($line)."<br />";

降順表示すうように修正。

		$lines = array_slice($lines, count($lines) - $num);
		$msg = "";
		for ($ii = count($lines) - 1; $ii >=0; $ii--)
			$msg .= trim($lines[$ii])."<br />";

さらに、ここも大事ww

	<p>このプラグインのログです(下に行くほど新しいログです)</p>
	<p>このプラグインのログです(上に行くほど新しいログです)</p>

一応これでさくらのライトプラン+PHP環境でのWordPress+Sqliteでも動作しましたよ。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク