質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

2184閲覧

【故障】Wordpress記事を古い順番で、 ユーザー登録を行った日から経過した日数に 応じて表示させたい

hirororo

総合スコア72

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

3クリップ

投稿2016/06/09 08:46

編集2016/06/09 08:54

はじめまして!

以前、Wordpress記事を古い順番で、
ユーザー登録を行った日から経過した日数に
応じて表示させたいと質問させていただきました。

Wordpress記事数をユーザー登録を行った日から 経過した日数に応じて可変させたい

無事に機能していたプログラムなのですが、突然動かなくなりました。
(ユーザー登録日数にかかわらず全記事が表示されてしまいます。)

こちらが、Wordpressテーマのトップページのコードになります。

■Wordpressテーマのトップページのコード

lang

1 2<?php 3$i = 1; 4wp_reset_query(); 5 6 7$current_user = wp_get_current_user(); 8 9$time1 = strtotime($current_user->user_registered); 10 11$time2 = strtotime(date('Y/m/d H:i:s')); 12 13$seconddiff = abs($time2 - $time1); 14 15$diff = $seconddiff / (60*60*24); 16 17$daydiff = floor($diff) *2; 18 19 20 21//query_posts('order=ASC&cat=11&posts_per_page.=$daydiff'); 22 23 24$args=array( 25'meta_query'=> 26array( 27array( 'key'=>'bzb_show_toppage_flag', 28'compare' => 'NOT EXISTS' 29), 30array( 'key'=>'bzb_show_toppage_flag', 31'value'=>'none', 32'compare'=>'!=' 33), 34'relation'=>'OR' 35), 36'showposts'=>$daydiff, 37'order'=>'ASC' 38); 39 40query_posts($args); 41 42if ( have_posts() ) : 43while ( have_posts() ) : the_post(); 44 45 46 47$cf = get_post_meta($post->ID); 48$recent_class = 'popular_post_box recent-'.$i; 49?>

幸いプログラムが機能していときのバックアップをとっていたので、全て復元してみたのですが、それでも、ユーザー登録日にかかわらず、全記事が表示されてしまいます。

■試したこと1

ユーザー登録日数に応じて記事表示されるプログラムが機能していときのバックアップデータを復元してみた。

バックアップデータはこちらになります。
記事、テーマ、アップロードしたデータ、プラグイン

■試したこと2
データベース(SQL)で直接ユーザー登録日を変更してみた。

例)

▷ユーザーAの登録日

・変更前 6月9日

・変更後 6月1日

もし、プログラムが機能していたら、
8日分の記事が表示されるはずなのですが、全記事が表示されてしまいます。

サイト運営をクライアントに任せれているため、原因を探し続けているのですが、解決の糸口が見つからず行き詰まっております。

度々になってしまいますが、アドバイス頂けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/06/10 07:06

まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。
hirororo

2016/06/10 11:29

ご指摘、ありがとうございます! 解決済とさせて頂きました!
guest

回答2

0

'showposts'=>$daydiff,をpost_per_page=>$daydiffに修正したところ、無事再機能しました。

ありがとうございます。

投稿2016/06/10 10:41

編集2016/06/10 11:30
hirororo

総合スコア72

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TsubasaOji

2016/06/12 13:08

hirororoさん、 初めまして。実は私も全く同じことがしたいと思っています。(=Wordpress記事を古い順番で、 ユーザー登録を行った日から経過した日数に 応じて表示させたい) ただ、私の場合は「有料会員サイト」を作ろうとしているため、WP-Membersは使うことができません。 「Simple Membership」というプラグイン(または別のプラグイン)で、Wordpress記事を古い順番で、 ユーザー登録を行った日から経過した日数に 応じて表示させる仕組みを加えたいと思っているのですが、 hirororoさんは「WP-Members」以外のプラグインで上記の機能(Wordpress記事を古い順番で、 ユーザー登録を行った日から経過した日数に 応じて表示)を加えたことはありますでしょうか? もし万が一あったとしたら、どのようなコードを使ったのか教えていただきたく。
hirororo

2016/06/15 15:27 編集

同じプログラムを作りたいなんて偶然ですね! 私もSimple Membershipというプラグインを使っています。 過去の質問で詳しく書かれてますので、そちらをご参考になさってください。
TsubasaOji

2016/06/16 02:38

hirororoさん、ご返信ありがとうございます!! 過去の質問(「Wordpress記事数をユーザー登録を行った日から 経過した日数に応じて可変させたい」)を読ませていただきました。貴重な情報ありがとうございます。 1つお聞きしたいのですが、hirororoさんが提示されたコード↓のコードは全てのテーマ(テーマに関係なく)で共通して使えるはずですよね? $current_user = wp_get_current_user(); $time1 = $current_user->user_registered; $time2 = date("Y/m/d H:i:s", strtotime('0 day')); $seconddiff = abs($time2 - $time1); $diff = $seconddiff / (60*60*24); $daydiff = floor($diff) + 1;
hirororo

2016/11/06 18:27

お返事が大変遅くなりました! 私はバズ部さんのXEORYというテーマを使ってるのですが、特別なコードは使ってないので、そちらのコードは他のテーマでも使えると思います!
guest

0

ベストアンサー

showpostsは非推奨になってますので、'showposts'=>$daydiff,ではなくpost_per_page=>$daydiff,ではどうでしょうか。

それと$daydiff = floor($diff) *2;の部分で8日ではなく16日になっているような気がします。
var_dump($daydiff)で値を確認してみたほうが良いと思います。

投稿2016/06/09 22:01

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hirororo

2016/06/10 06:40 編集

いつもお世話になっております。 var_dump($daydiff)で出力して、ユーザー登録日数に応じて値が確認することが出来たので 'showposts'=>$daydiff,をpost_per_page=>$daydiffに修正したところ、プログラムが無事、再機能しました! 的確なアドバイスをありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問