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

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

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

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

PHP

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

Q&A

1回答

645閲覧

phpでの出勤表表示について[wordpress]

number08

総合スコア12

WordPress

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

PHP

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

0グッド

1クリップ

投稿2019/05/13 23:47

お世話になります。

現在、下記のテンプレートを使用し夜系のサイトを作成しています。
http://demo.crazy-wp.com/butterfly2/home/

キャストの出勤表を作成したいのですが、なかなか理想通りにできなく困っています。

■実現したいことは

のようなURLで、各該当日付のキャストを表示するページを作成したいと思っております。
イメージは下記のような感じにしたいと思っております。

イメージ説明

下記コードを用いて、当日の出勤に該当するキャストを出力するページ
例)https://sample.jp/schedule/
を作成しました。

<ul id="" class="castList"> <?php $args = array('post_type' => 'product', 'paged' => $paged, 'posts_per_page' => 18); /* 投稿タイプを指定 */ ?> <?php query_posts( $args ); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); /* ループ開始 */ ?> <!-- cast li --> <li> <a href="<?php the_permalink(); ?>"> <!-- Photo --> <div class="photo"> <!--<h3><?php echo get_post_meta($post->ID/*$post_id*/,'name',true); ?></h3>--> <div class="castPic"> <?php if(get_post_meta($post->ID,'product_img1',true)) { ?> <img src="<?php echo get_post_meta($post->ID,'product_img1',true); ?>" class="img-responsive panel-img"> <?php }else{ ?> <img src="<?php echo bloginfo('template_url').'/images/no-img.png'; ?>" class="img-responsive panel-img"> <?php } ?> </div> <div class="black_overlay"></div> <!--new--> <?php $days = 3; $today = date_i18n('U'); $entry_day = get_the_time('U'); $keika = date('U',($today - $entry_day)) / 86400; if ( $days > $keika ): echo '<div class="iconBox"><div class="iconWrap"><p class="icon new"><svg><use xlink:href="#icon-new"></use></svg></p><p class="fukidashi new">新人</p></div></div>'; endif; ?> </div><!-- /Photo --> <!-- Detail --> <div class="pack"> <p class="name"><?php echo get_post_meta($post->ID/*$post_id*/,'name',true); ?></p> <p class="comment"><?php echo get_post_meta($post->ID,'comment',true); ?></p> <p class="leftLine mb10"></p> <p class="age">AGE // <?php echo get_post_meta($post->ID,'age',true); ?></p> <p class="size"><?php echo get_post_meta($post->ID,'size',true); ?></p> </div> <!-- /Detail --> </a> </li><!-- /cast li --> <?php endwhile; ?> <?php else : ?> <div class="post"> <h3>キャスト未登録です</h3> <p>表示するキャストがいませんでした。</p> </div> <?php endif; ?> <!-- /cast --> </ul>

こちらを元に冒頭で既述したように

のような形のURLで出力するにはどうしたら良いでしょうか。
乱文で分かりにくいかもしれませんが、ご教授していただけると幸いです。

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

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

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

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

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

guest

回答1

0

1.sample.jp は、所有者がいますので、例示に使用する場合は、 example.com / example.jp 等の例示用ドメインを使用してください。

2.

<?php query_posts( $args ); ?>

query_posts

注 2: query_posts() はページ内のメインクエリーを書き換え、新しいクエリーのインスタンスと置き換えるために使う関数としては過度に単純化され、問題が発生しやすい方法です。非効率的で(SQL クエリを再実行します)、一部の状況では適切に実行することもできません(特にページング処理)。モダンな WordPress コードではもっと安定したメソッドを使うべきです。例えばpre_get_posts フックを使った方法などです。ひとことで言うと、query_posts() は決して使うべきではありません。

とあるように 現在では非推奨の方法となっていますので、 pre_get_postsWP_Query を使用するようにしてください。


https://example.jp/schedule.php?date=2019-05-15
のようなURLで、各該当日付のキャストを表示するページを作成したいと思っております。

「Query String を利用して、WordPress にパラメータを渡して検索したい」と言うことですね。

いろいろ情報が不足しているので概要だけを...

方法としては、

あたりが参考になると思います。


まず、functions.php で、カスタムクエリ変数を定義します。( date だとプラグインなどで使われている可能性もありそうなので、 mydate にしておきます。 )

function add_query_vars_filter_189233( $vars ){ $vars[] = "mydate"; return $vars; } add_filter( 'query_vars', 'add_query_vars_filter_189233' );

functions.php でカスタムクエリ変数を定義すれば、テーマの中で、get_query_var( 'mydate' ); で、https://example.jp/schedule/?mydate=2019-05-15 のように URL に指定した mydate の値が取得して、PHPの中で使用できますので、

$mydate = get_query_var( 'mydate' ); echo $mydate;

のように変数に代入するとか

$args = array( 'post_type' => 'product', 'paged' => $paged, 'posts_per_page' => 18, 'meta_key' => 'mydate', 'meta_value' => get_query_var( 'mydate' ) ); $the_query = new WP_Query( $args );

のように WP_Query の検索パラメータに利用する等が可能になります。

投稿2019/05/14 03:49

編集2019/05/14 03:52
CHERRY

総合スコア25171

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問