WP_Query の Custom Field Parameters を使い、type の指定を DATE (ただし、入力されている経緯式がPHPが日付型と判断でき、全角などが混じっていない前提)を指定していただければ実現可能かと思われます。
jim912様
先日はありがとうございました。
type の指定を DATE (ただし、入力されている経緯式がPHPが日付型と判断でき、全角などが混じっていない前提)
とありますが、yy/mm/ddの形で良いのでしょうか。
それとも、適当なフォーマットがあるのでしょうか。
<?php
$arg = array(
‘post_type’ => ‘outline’,
‘posts_per_page’ => -1,
‘orderby’ => ‘menu_order’,
‘order’ => ‘ASC’,
‘date_query’=>array(
array( ‘monthnum’=>01,),
),
‘meta_query’ => array(
array(
“key” => “custom_date”,
“value” => “????”
),
);
$datas = get_posts( $arg );
if($datas):?>
のように、カスタム投稿outlineで、custom_dateの1月の記事を抽出したい場合、
meta_queryのvalueをどうしたら良いのか不明です。
こんがらがってきました。
お時間のある際、ご教示くださいましたら幸いです。
yy/mm/ddの形で良いのでしょうか。
それとも、適当なフォーマットがあるのでしょうか。
type で DATE を指定した場合、データベースへのリクエスト(SQL)では、CAST関数を使って、型変換を行っています。このCAST関数で変換可能な値であることが必要です。
どのような値であれば、変換可能かは、以下の記事が参考になります。
日付データへの変換
custom_dateの1月の記事を抽出したい場合、
meta_queryのvalueをどうしたら良いのか不明です。
WP_Query の Custom Field Parameters にある Multiple Custom Field Handling: のサンプルが参考になります。
type で DATE を指定した場合、データベースへのリクエスト(SQL)では、CAST関数を使って、型変換を行っています。このCAST関数で変換可能な値であることが必要です。
どのような値であれば、変換可能かは、以下の記事が参考になります。
ありがとうございます。
DATEへ変換できる、【DATE型への変換の場合】の形なら大丈夫のようですね。
WP_Query の Custom Field Parameters にある Multiple Custom Field Handling: のサンプルが参考になります。
すみません、date_queryとmeta_queryの書き分け?が理解できていません。
まさか、date_queryもmeta_queryと同じ書き方で通るのでしょうか。
'date_query'=>array(
array(
"key" => "custom_date",
"monthnum"=> 01,
'type' => 'numeric',
'compare' => 'BETWEEN'
),
勝手に想像してしまいました。
date_queryは、あくまでも投稿の公開日時に対して利用するもので、カスタムフィールドの値に使うことはできません。カスタムフィールドの値を検索する場合は meta_query、分類(タクソノミー)で検索する場合は tax_query を使う必要があります。
また、date_query, meta_query, tax_query は指定に仕方こそ似ていますが、検索対象は全く異なり、指定可能な内容も同一ではありません。
あくまでも、
http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
や
http://codex.wordpress.org/Class_Reference/WP_Meta_Query
を参考として下さい。
ご指南、ありがとうございます。
やはり、投稿の公開日時にのみ適応するものだったのですね。
カスタムフィールドでの日付は、これまでどおりmeta_queryで抽出するように致します。
ありがとうございました。