Query_postsのパラメータ[3.00くらい]

<?php
$args = array( //パラメータ
//カテゴリー引数
'cat' => '1', //(整数)- カテゴリーIDを指定。コンマ区切りにした複数IDの文字列も指定可能。
'category_name' => 'my cat name', //(文字列)- カテゴリー名を指定(日本語も可)。
'category__and' => array('1', '2'), //(配列)- カテゴリーIDの配列。指定した複数のカテゴリーすべてに含まれる投稿のみを取得。
'category__in' => array('1', '2'), //(配列)- カテゴリーIDの配列。指定した複数のカテゴリーいずれかに含まれる投稿のみを取得。
'category__not_in' => array('1', '2'), //(配列)- カテゴリーIDの配列。指定した複数のカテゴリーのいずれにもに含まれない投稿のみを取得。
//タグ引数
'tag' => 'my tag slug', //(文字列)- タグスラッグを指定。
'tag_id' => '1', //(整数)- タグ ID を指定。コンマ区切りにした複数IDの文字列も指定可能。
'tag__and' => array('1', '2'), //(配列)- タグ ID の配列。指定した複数のタグのすべてを含む投稿のみを取得。
'tag__in' => array('1', '2'), //(配列)- タグ ID の配列。指定した複数のタグのいずれかを含む投稿のみを取得。
'tag__not_in' => array('1', '2'), //(配列)- タグ ID の配列。指定した複数のタグのいずれも含まない投稿のみを取得。
'tag_slug__and' => array('1', '2'), //(配列)- タグスラッグの配列。指定した複数のタグすべてを含む投稿のみを取得。
'tag_slug__in' => array('1', '2'), //(配列)- タグスラッグの配列。指定した複数のタグのいずれかを含む投稿のみを取得。
//投稿者引数
'author' => '1', //(整数)- 指定したIDや名前の投稿者による投稿を取得する。
'author_name' => 'my author nick name', //(文字列)- 投稿者のニックネームを指定(日本語も可)。
//記事・固定ページ引数
'p' => '1', //(整数)- 取得する投稿 ID を指定。
'name' => 'my post slug', //(文字列)- 取得する 投稿スラッグ を指定。
'page_id' => '1', //(整数)- 取得する固定ページ ID を指定。
'pagename' => 'my page slug', //(文字列)- 取得する固定ページスラッグを指定。タイトルではありません。
'posts_per_page' => '-1', //(整数)- 1ページに表示する記事数。-1 ならすべての投稿を取得。
'post__in' => array('1', '2'), //(配列)- 取得する投稿の ID を配列で指定。
'post__not_in' => array('1', '2'), //(配列)- 取得しない投稿の ID を配列で指定。
'post_type' => 'page', //pageタイプのみを指定。
'post_type' => 'post', //postタイプのみを指定。
'post_type' => 'attachment', //添付ファイルタイプのみを指定。
'post_type' => 'revision', //リビジョンタイプのみを指定。
'post_type' => 'my custom post', //カスタム投稿タイプのみを指定。
'post_status' => 'publish', //取得するステータスを指定:publish(公開済み)
'post_status' => 'pending', //取得するステータスを指定:pending(レビュー待ち)
'post_status' => 'draft', //取得するステータスを指定:draft(下書き)
'post_status' => 'future', //取得するステータスを指定:future(スケジュール済み)
'post_status' => 'private', //取得するステータスを指定:private(非公開)
'post_status' => 'trash', //取得するステータスを指定:trash(ゴミ箱入り)
'post_status' => 'inherit', //取得するステータスを指定:inherit(get_children/en 参照)
'post_parent' => '1', //(整数)- 取得する固定ページの親ページ ID を指定。
//日時引数
'hour' => '', //(整数)- 時 (0?23)
'minute' => '', //(整数)-分 (0?59)
'second' => '', //(整数)- 秒 (0?59)
'day' => '', //(整数)- 日 (1?31)
'monthnum' => '', //(整数)- 月 (1?12)
'year' => '', //(整数)- 4桁の年 (例:2009)
'w' => '', //(整数)- 0~53 で年間のうちどの週かを選ぶ。MySQL WEEK command Mode=1 を使っている。
//ページング引数
'nopaging' => 'true', //ページングを無効にする。
'paged' => '', //インデックスや月別・カテゴリー別アーカイブページンなどが複数ページにわたる場合の、表示するページ番号を指定。
//オフセット引数
'offset' => '1', //投稿の先頭からスキップする件数を指定。
//並び替え引数
// - 指定したフィールドで投稿を並び替えて取得する。
'orderby' => 'author',
'orderby' => 'date',
'orderby' => 'title',
'orderby' => 'modified',
'orderby' => 'menu_order', //注意: 固定ページ のみ有効。
'orderby' => 'parent',
'orderby' => 'ID',
'orderby' => 'rand',
'orderby' => 'meta_value', //注意: カスタムフィールド引数として meta_key=keyname が指定されていること。
'orderby' => 'none',
'orderby' => 'comment_count',
//並び順引数
'order' => 'ASC', //昇順。小さい値から大きい値の順。
'order' => 'DESC', //降順。大きい値から小さい値の順。
//カスタムフィールド引数
// - カスタムフィールドのキーまたは値を元に、投稿(または 固定ページ) を取得。
'meta_key' => 'my meta_key name',
'meta_value' => 'my meta_value',
'meta_compare' => '', //meta_value で指定された値を比較する演算子。デフォルトは '=' で, '!='、'>'、'>='、'<'、'<=' も使える。
'' => '' //
);
query_posts($args);
?>

おお、多い多い・・・。

何度もpostを投げないようにしてみよう。

<?php
$day_posts = query_posts("post_type=post&posts_per_page=1");
$today = $day_posts[0]->post_date;
$new_str=str_replace(" ","-",$today);
$post_day=explode("-",$new_str);
$date = date("Y年m月d日" , mktime(0,0,0,$post_day[1],$post_day[2],$post_day[0]));
$posts = query_posts( 'year=' . $post_day[0] . '&monthnum=' . $post_day[1]. '&day=' . $post_day[2] ."post_type=post&posts_per_page=-1");
$i = 0;?>
<?php echo "<h2><span>".$date."</span></h2>";?>
<?php echo "<ul class='cf mainlist'>";?>
<?php while ( have_posts() ) : the_post();
$i++;?>
<li><div><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail("day_photo"); ?></a>
<span><a href="<?php the_permalink(); ?>"><?php the_title(); ?>様</a></span></div></li>
<?php endwhile;
echo "</ul>";
 ?>
<h3>応募写真一覧</h3>
<?php wp_reset_query(); ?>
<ul class="cf sublist">
<?php $posts = query_posts("post_type=post&nopaging=true");
$l = 0;
while ( have_posts() ) : the_post();?>
<?php
$l++;
$d = $i+1;
if( $d <= $l ):?>
<li><div><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail("photo"); ?></a>
<span><a href="<?php the_permalink(); ?>"><?php the_title(); ?>様</a></span></div></li>
<?php endif;?>
<?php endwhile; ?>

いろいろとテンパって書いたものだけど
考えてみれば最初の1回のクエリだけでほかのクエリは入らない気がする。
最初のクエリで全ての記事を取得しその最初の配列のなかから日付のデータをとりそれを基準として
caseをつかって記事の出力の設定切り替えてcaseのなかでi++などでカウントさせて最初の1回のときに
締めのULや開始のUL、見出しタグを出せばいけるかと思う。
あとで整理してみよう。

記事に投稿日と現在の日時を利用したNEW表示ファンクション版

//新着のNEW表示
function new_point() {
$html = "";
$day = (date('U') - get_the_time('U'))/(24*60*60);
$hyouji_day = 2; //日付設定
if($day <= $hyouji_day ){ 
$html .='<span class="new">NEW</span>';
}
return $html;
}

//店舗別ブログ新着のNEW表示


function shop_entry() {
wp_reset_query();

$page_list= get_pages('sort_column=menu_order&child_of=75');
foreach($page_list as $list){

$title = $list->post_title;
$url = $list->guid;

echo '<li><a href="' .$url. '">' .$title. '</a>';

if($list->ID == 71){
$string = "伊賀上野店";
}elseif($list->ID ==69 ){
$string = "商店街店";
}elseif($list->ID ==57 ){
$string = "まるやま店";
}elseif($list->ID ==59 ){
$string = "小倉店";
}elseif($list->ID ==61 ){
$string = "東大阪店";
}elseif($list->ID ==65 ){
$string = "桜井店";
}elseif($list->ID ==67 ){
$string = "祝園店";
}elseif($list->ID ==63 ){
$string = "西大和店";
}elseif($list->ID ==73 ){
$string = "京都八幡店";
}
$args = array(
            'post_status' => 'publish',
            'post_type' => 'post',
			'showposts' =>1,
            'meta_query' => array(
array('key'=>'shop_g','value'=> $string )
            )
        );
$posts = query_posts( $args );
foreach($posts as $post){
$entry_day = get_the_modified_date();
//echo $post->post_date;
$date = explode(" ", $post->post_date);
$date_a =$date[0];
if (strtotime(date('Y-m-d', strtotime("-2day"))) <= strtotime($date_a)) {
echo '<span class="new">NEW</span>';
}
}
echo '</li>';
wp_reset_query();
}// end foreach

}

これはがんばった。まじがんばった。
下のほうは特定のページの子ページのリストを取得しそこに投稿に付属しているメタデータと関連付けをし
クエリを投げそこから記事の更新日を抽出しexplodeを利用し日付のデータを整形しdateと照らし合わせ条件に該当する場合にechoさせる。

という感じ。
テンプレートには

<?php shop_entry();?>

でliタグとあわせて書き出しをされる。

複数の投稿タイプを統合した記事出力[query_posts]

複数の投稿タイプ記事の出力方法

			<?php
			global $query_string;
			parse_str( $query_string, $args );
			$args['post_type'] = array( 'post', 'external-post' );
			query_posts( $args );
			get_template_part( 'loop', 'archive' );
			?>

複数の投稿タイプとメタフィールドをつかった記事の出力方法

			<?php
			global $query_string;
			parse_str( $query_string, $args );
			$args['post_type'] = array( 'post', 'external-post' );
			$args['meta_query'] = array( array('key'=>'Flag','value'=> 'top',));
			query_posts( $args );
			get_template_part( 'loop', 'archive' );
			?>

これでいけるはず。
また休み明けにでも確認。

特定メタバリューでソートをする場合のカテゴリページの[query_post]

<?php 
$cat = get_query_var( 'cat' );
global $query_string;
query_posts($query_string . "&cat='.$cat.'&orderby=meta_value&meta_key=date2&order=DESC");
?>

				<?php
					$category_description = category_description();
					if ( ! empty( $category_description ) )
						echo '<div class="archive-meta">' . $category_description . '</div>';
				get_template_part( 'loop', 'category' );
				?>


<?php wp_reset_query();?>