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

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

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

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

PHP

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

解決済

WordPress「Advanced Custom Fields」のデイトピッカーとTime Pickerで記事の並び替えをしたい。

teraota27
teraota27

総合スコア27

WordPress

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

PHP

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

1回答

0グッド

0クリップ

220閲覧

投稿2022/09/21 08:55

編集2022/09/21 20:03

前提

WordPressのカスタム投稿タイプでイベントスケジュールのページを作っています。

実現したいこと

イベント投稿の並び順を開催日の近い順に、かつ同日に複数イベントがある場合は開催時間の早い順に並び替えたいと思っています。
また、開催日が過ぎたものは非表示にしたいとも考えています。

開催日と開催時間の入力にはプラグイン「Advanced Custom Fields」を使用しており、開催日をデイトピッカーで、開催時間をTime Pickerで入力するようにしています。

発生している問題・エラーメッセージ

↓の質問を参考に記述してみたのですが
https://teratail.com/questions/195188

「このサイトで重大なエラーが発生しました。」と表示されてしまいました。

各設定

カスタム投稿タイプの名前:schedule
開催日の名前:schedule_date
開催時間の名前:schedule_starttime

該当のソースコード

PHP

1<div class="part schedule_part"> 2 <ul class="archive_ul"> 3<?php 4$paged = get_query_var('paged'); 5$args = array ( 6 'post_type' => 'schedule', 7 'posts_per_page' => 10, 8 'meta_key' => 'schedule_date', 9 'meta_value' => wp_date( "Ymd" ), 10 'meta_compare' => '>=', 11 'paged' => $paged, 12 'meta_query' => array( 13 'relation' => 'AND', 14 'date_clause' => ( 15 'key' => 'schedule_date', 16 ), 17 'starttime_clause' => ( 18 'key' => 'schedule_starttime', 19 ), 20 ), 21 'orderby' => ( 22 'date_clause' => 'ASC', 23 'starttime_clause' => 'ASC', 24 ), 25); 26$posts = new WP_Query($args); 27if($posts->have_posts()): 28while($posts->have_posts()) : $posts->the_post(); 29?> 30 <li class="archive_li"> 31 <a href="<?php the_permalink(); ?>"> 32 <p class="date"> 33<?php 34$date = get_field('schedule_test', false, false); 35$date = new DateTime($date); 36?> 37 <?php echo $date->format('m.d'); ?><span class="schedule_week schedule_<?php echo $date->format('D'); ?>"><?php echo $date->format('D.'); ?></span><span class="schedule_year"><?php echo $date->format('Y'); ?></span> 38 </p> 39 <div class="title"> 40 <p class="schedule_title"><?php the_title(); ?></p> 41 <p class="past_place"><?php the_field('schedule_place'); ?></p> 42 <p class="past_place"><?php echo $date->format('H:i'); ?></p> 43 <p class="schedule_act"><?php the_field('schedule_act'); ?></p> 44 </div> 45 </a> 46 </li> 47<?php endwhile; ?> 48<?php else:?> 49 <li >現在、イベントの予定はありません。</li> 50<?php endif;wp_reset_postdata(); ?> 51 </ul> 52</div>

ではダメなようで、どこがいけなかったのでしょうか?
ご教授頂けますと幸いです。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/09/21 09:25依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

CHERRY

2022/09/21 09:04 編集

ダメとは、どのような結果になったのでしょうか。 また、他の部分に原因がある場合もあるので、表示部分も含めたコードの全体を記載していただけないでしょうか。
teraota27

2022/09/21 09:04

「このサイトで重大なエラーが発生しました。」と表示されてしまいました。
teraota27

2022/09/21 09:17

コードを詳しく書きました

回答1

0

自己解決

改めてコードを書き直したら上手くいきました。
質問時のコードと何ら変わらないと思うのですが以下でいけました。

お騒がせしました。

PHP

1$args = array( 2 'post_type' => 'schedule', 3 'posts_per_page' => 10, 4 'meta_key' => 'schedule_date', 5 'meta_value' => wp_date( "Ymd" ), 6 'meta_compare' => '>=', 7 'paged' => $paged, 8 'meta_query' => array( 9 'relation' => 'AND', 10 'date_clause' => array( 11 'key' => 'schedule_date' 12 ), 13 'starttime_clause' => array( 14 'key' => 'schedule_starttime', 15 ) 16 ), 17 'orderby' => array( 18 'schedule_date' => 'ASC' , 19 'starttime_clause' => 'ASC' 20 ) 21);

投稿2022/09/21 21:20

teraota27

総合スコア27

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

WordPress

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

PHP

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