query_posts()は非推奨!?

ひとことで言うと、query_posts() は決して使うべきではありません。

WordPress Codex 日本語版テンプレートタグ/query posts

ワードプレスで新着情報の部分のカスタマイズをするときに今まではquery_posts()を使って条件を指定していました。

	<?php query_posts('showposts=1&offset=2'); ?>

こんな感じで。これだと初心者的に視覚的に理解しやすくて、はじめたばかりの頃調べたまま使っていました。
が、この度ユーザーIDごとに表示をしたいということだったので、ユーザーIDはauthor=Xかなぁと思い調べたら一番上の文章が。
どうやら処理の回数がかなり多くなり混乱と問題を引き起こす可能性ありとのこと。ここまでわかっててそのまま使えるはずがないのでいろんなサイトを調べまくってみた結果

	
	<?php
		$args = array(
			'posts_per_page' => 4,
			'paged' => $paged,
			'author' => 3,
			'post_type' => array(
			'post',
			),
			);
		$the_query = new WP_Query( $args );
	?>

	<?php if($the_query->have_posts()): ?>
		<?php while($the_query->have_posts()) : $the_query->the_post(); ?>
			//ループ内容
		<?php endwhile; ?>
	<?php endif; ?>
					
	<?php wp_reset_postdata(); ?>
		

これで思い通り動いてくれました。

$argsに書く内容によって色々できるみたい、こうやってみると$argsを引数にして$the_queryをクラスWP_Queryに追加
以下はいつものループして

	<?php wp_reset_postdata(); ?>

でリセットという流れみたいですね。なおget_post()を使ったやり方もあったので、そちらも調べてみて
どちらがいいのか試して見たいと思います。

コメントを残す

メールアドレスが公開されることはありません。