読者です 読者をやめる 読者になる 読者になる

漆黒な技術メモ

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

記事カテゴリの自動更新とかいう頭おかしいことをやってみる(その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文がすごく複雑になりそう
そのため次回へ持越し…今日は疲れた。