記事カテゴリの自動更新とかいう頭おかしいことをやってみる(その1)
某用事でwordpressを使ってサイト制作をしているわけですが、設計上
「記事カテゴリを設定した日付になったら別の記事カテゴリに変更する」
というトンデモ仕様を組み込まなきゃいけなくなったので、メモ。
wordpress素人がこんな謎な行為していいのか…
さて、今回は記事の中身を「いじっていく」ので
WordPressのテンプレートファイルとかいうPHPファイルをいじるわけではなく、DBをいじることになる。
やりたいこと
対象記事にはこんな感じのカスタムフィールドが入っているので
「カスタムフィールドの値が今日と一緒の日付だったら、その記事のカテゴリを変更する。」
というプログラムを作ればいいことになる。
WordPressDBへのPHPからのアクセス
そもそも今回作るようなプログラムはテンプレートファイルでないので、単純にwordpressのwpdbクラスは使えない。
そこで、WordPressのデータベースに素のPHPからアクセスする方法 | com4tis Blogを見ると、wp-load.phpをインクルードすることで解決できるらしい。
これを基に、とりあえず「カスタムフィールドの値が今日と一緒の日付だったら」のみやってみた。
<?php //wpdbクラスのインクルード require_once('wp/wp-load.php'); global $wpdb; //日付を取得 $searchDate=date('n/j'); //SQL文の定義、インジェクション対策 $sql=$wpdb->prepare('SELECT * FROM wp_postmeta WHERE meta_key=%s AND meta_value=%s','応募締切',$searchDate); //SQLの実行、結果取得 $results=$wpdb->get_results($sql); //結果からidを取り出し、そのカテゴリを更新 /* * まだ書けてない・・・ */ ?>
ただ、カテゴリはデータベース構造のかなり奥深くにはいつぁれていて、SQL文がすごく複雑になりそう
そのため次回へ持越し…今日は疲れた。
さくらレンタルサーバでwordpress用のCRONを設定してみる。(前座編)
さくらレンタルサーバではご親切に、
こんなGUIっぽくなってる。
さあ、どうすればいいのやら、
そもそもCRONなど使ったことがないわたくしにはどーしろと…
(ちなみにCRONはこんなものっぽい…http://ja.wikipedia.org/wiki/Crontab)
で、実際のコマンドでは
45 04 * * * /var/test/cron.autoexec.sh
こんな感じにすれば、「毎日4:45に/var/test/cron.autoexec.shを実行する」って言うことが指定できるらしい
これをさくらの設定画面に移すと…
(毎日実行する場合)
こんな感じになるのか?
まあ、そもそも実行するスクリプトを作っていないので、どう考えてもそっちが先決だな…