質問: 'publish' AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59'", ARRAY_N); ```
回答: こんにちは。 試したこと、についてですが、 > > 1.カスタム投稿タイプのカレンダーを表示する > > →無事、"event"のカレンダーが表示されましたがリンクが投稿日になってしまいます。 > > > →取得条件のpost_typeのみ変更していて、取得対象カラムがpost_dateのままなので、当然リンクは投稿日のままになります。 > > 2.カスタム3兄弟で作る独自イベントカレンダー > > →general-template.php の該当部分をこのページのように差し替えましたが何も変化がありません。 > > > →おそらくクエリとしてはこれで良いと思われるのですが、該当部分のみ差し替え、とおっしゃられているので、もしかしたら$st,$edのあたりがうまくいっていないのではないかと推測します。 こちらを踏まえて、ご質問のSELECT文については下記のようにすればお望みの結果を得られると思います。 (修正結果を実行はしていないので、動作保証はできかねます、申し訳ありません) ``` $dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(meta_value) FROM $wpdb->posts INNER JOIN $wpdb->postmeta ON ID = post_id WHERE meta_value >= '{$thisyear}-{$thismonth}-01 00:00:00' AND post_type = '$cpt' AND post_status = 'publish' AND meta_value <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59'", ARRAY_N); ``` また、前後のSELECT文でpost_dateを取得している箇所は同様に、meta_valueを取得&FROM句WHERE句を変更する必要があるでしょう(前月移動のリンクなど 修正時ですが、general-template.phpをそのまま書き換えてしまうと、WP自体をupdateした時に上書きされて消えてしまいますので、コアファイルの書き換えをせず、1のようにfunctions.phpに書くことをお勧めします。 話は飛躍しますが、「カレンダーのリンク」をクリックしたあとのページ表示についてはもう作り込みされていますでしょうか? (一覧取得時にmeta_valueで絞り込むように修正する必要がある & get_template.phpのline.2043付近、get_day_link( $thisyear, $thismonth, $day )でリンク先URLが生成されるので、↑にあわせてなんらか修正する必要がある) これについてまだ考慮されていないのであれば、既存のプラグインを利用&カレンダー部分をCSSでどうにかする方向のほうが楽かもしれません。 以前似たようなイベントカレンダーを作成した時に Event Organiser を利用しましたが、上記の問題は対応できました。(挙げられていた別質問にはなかったのでご参考までに) 以上、解決のお役に立ちましたら幸いです。