質問: とても困っています。 プログラミング初心者で、 ある塾のWordpressサイトを運営しています。 取引先で期限付きでサイト作成を依頼され、 自分自身がプログラミング初心者だということと期限内に必ず達成させたいという思いで書かせて頂きます。 PHPとSQLを使って ユーザー登録を行った日から 経過した日数に応じた数の記事を 閲覧できるようにするには どうすればいいでしょうか? 出来れば1日おきに 自動で記事を更新出来るように 設定したいと考えています。 例えば、 AさんとBさんがいたとします。 Aさんは、新規会員登録して、 まだ初日なので、 1記事だけ見れる (1つ目の記事以外は画面に 表示されず隠れた状態) 一方Bさんは新規会員登録してから、 10日経ったので、10記事を閲覧できる と言ったシステムを導入したいのです。 ■試してみたこと ▷ワードプレスプラグイン ・WP-member ・simple membership ユーザーに権限(ランクみたいなもの)を設定して、見られるページ見られないページを設定するプラグインです ▷参考にしているサイトの一部 ・初心者PHP入門 http://www.standpower.com 初心者 PHP 講座 ・https://youtu.be/O1-C_HY50Ug ▷検索エンジンでの入力した一部 ・ワードプレス 新規登録 記事自動更新 ・プログラミング 記事自動更新 ・PHP 初心者 ▷考えてみたPHP文 $count > 24h) { "1-2";} //記事の1から2ページまで表示 elseif (72h > $count > 24h) { "1-3";} //記事の1から3ページまで表示 Print_r( $count ); ?> 今も尚、調べてますが数週間調べても 解決に至らず、 ご教授して頂ければ幸いです。 よろしくお願いいたします。
回答: 書かれているWordpressのプラグインは使ったことないのでよく分かりませんが、ユーザーに権限というかランクを設定して、見られるページ見られないページを設定するようなものではないですか?だとしたら、やりたいことを実現するためには、プラグインそのものを改造する必要があると思います。結構めんどいですし、プラグインのアップデートに対応できなくなります。 登録日から経過した日数に応じて閲覧可能ページが増えるというのであれば、PHP+DBで作るのが早いと思います。まずデータベース(MySQLなど)にユーザーテーブルを作って、ユーザー情報だけではなく登録日も収納。ユーザーがシステムにログインした時に、その日付と登録日を比較して24時間未満であれば1ページ、24時間以上48時間未満であれば2ページという感じでしょうか。それをPHPから処理する流れ。 select contents from contents_tbl order by time DESC limit $count contents_tblには閲覧できるページの情報が入っている仮定で、$countには事前に算出したそのユーザーが見られるページ数が動的に入ります。ただこのSQL文だと、ユーザーが見られるコンテンツは最新のものからいくつ遡れるかという処理になりますので、もっと過去に遡ってコンテンツを見るというのであれば、そのユーザーが今までどのコンテンツを見たかという回数や情報も、DB内に収納する必要があります。