私は、ユーザーが次の基準で今後のイベントをフィルタリングできるようにしたいクライアントのためのサイトを計画しています。
Typeすなわちコメディ、演劇、音楽など.
Date毎日または週末
期間毎日または半日
カスタム投稿についてもっと詳しく調べたいので、 'Events'(非階層型)のカスタム投稿タイプを設定し、新しい投稿を作成するときに、タイプ、日付、期間のカスタムフィールドを追加します。
私が持っている質問はどのように私がquery_posts()を使用するであろうかということです:
カスタムフィールドの値に基づいて、フォームのドロップダウンリストに一連のオプションを作成する必要があると思いますか。
私は以前にクライアント用のイベントのリストを作成しましたが、フィルタリングの可能性はありません。私はこのquery_posts()コードを使用してカスタム投稿を取得し、ものを注文しました。
// List the events by custom field 'Date':
$todaysDate = date('Y/m/d'); // set todays date to check against custom field
// query posts
query_posts('post_type=Event&meta_key=Date&meta_compare=>=&meta_value=' . $todaysDate . '&orderby=meta_value&order=ASC');
しかし、このコードを複数のカスタムフィールドでフィルタリングするように変更する方法がわかりません。
ありがとう
カスタム分類法を使用してquery_postsをはるかに簡単にすることができます。それによって、タイプ、期間のカスタム分類法を作成することを意味します。
add_action('init','register_event_tax');
function register_event_tax(){
register_taxonomy('even_type',array('events'), array(
'hierarchical' => false,
'labels' => 'type',
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'type' ),
));
register_taxonomy('even_duration',array('events'), array(
'hierarchical' => false,
'labels' => 'type',
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'duration' ),
));
}
それからあなたはこのような投稿を問い合わせることができます:
query_posts('post_type=Event&duration=DAILY&type=COMEDY&meta_key=Date&meta_compare=>=&meta_value=' . $todaysDate . '&orderby=meta_value&order=ASC');
また、デュレーションとタイプを変更して、必要なタイプやデュレーションをフィルタリングすることもできます。
お役に立てれば。