あまり集客に執着はないものの、見てもらえればヤリ甲斐もあるかな~と思いPing送信まわりを調べてみた。
WordPressって公開済みの投稿を更新したときもPingを送るらしい。
はじめたばかりのブログは色々いぢるコトが多いし、そもそも設定している
Ping送信がちゃんと送られているか微妙だったのでプラグインを導入。
- 新規投稿のみ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でも動作しましたよ。