漆黒な技術メモ

管理人が必要に応じて自分のメモを好き勝手に投下するたまり場的ブログ

記事カテゴリの自動更新とかいう頭おかしいことをやってみる(その1)

某用事でwordpressを使ってサイト制作をしているわけですが、設計上
「記事カテゴリを設定した日付になったら別の記事カテゴリに変更する」
というトンデモ仕様を組み込まなきゃいけなくなったので、メモ。

wordpress素人がこんな謎な行為していいのか…

さて、今回は記事の中身を「いじっていく」ので
WordPressのテンプレートファイルとかいうPHPファイルをいじるわけではなく、DBをいじることになる。

やりたいこと

f:id:igbt3116redtrain:20141005034330p:plain

対象記事にはこんな感じのカスタムフィールドが入っているので

「カスタムフィールドの値が今日と一緒の日付だったら、その記事のカテゴリを変更する。」

というプログラムを作ればいいことになる。

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を設定してみる。(前座編)

さくらレンタルサーバではご親切に、

f:id:igbt3116redtrain:20140930015109p:plain

こんなGUIっぽくなってる。

 

さあ、どうすればいいのやら、

そもそもCRONなど使ったことがないわたくしにはどーしろと…

 

(ちなみにCRONはこんなものっぽい…http://ja.wikipedia.org/wiki/Crontab)

 

で、実際のコマンドでは

 

45 04 * * * /var/test/cron.autoexec.sh

 

こんな感じにすれば、「毎日4:45に/var/test/cron.autoexec.shを実行する」って言うことが指定できるらしい

 

これをさくらの設定画面に移すと…

 

f:id:igbt3116redtrain:20140930020527p:plain

(毎日実行する場合)

 

こんな感じになるのか?

 

まあ、そもそも実行するスクリプトを作っていないので、どう考えてもそっちが先決だな…

はじめまして

どーも、管理人です。

 

この度は、「自分のメモとして使えればいいなー」ってスタンスでブログを立ち上げました。

 

読者とかいない体で書いていくかもしれませんのであしからず・・・

 

また自分のプロフィールとかは、気が向いたら書きます。

 

では、よろしくお願いします。