このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

WordPress ループの基本

WordPress

2012.03.27

この記事は最終更新日から1年以上が経過しています。

WordPressをカスタマイズする際、キモとなるのがWordPressのループかと思います。

今回はそのWordPressのループに関してまとめてみました。

WordPress ループ

wordpressのループの基礎の記述です。

<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?> // ループ処理
    <?php endwhile; ?>
<?php endif; ?>

「該当する記事があるならば、あるだけループしてください。」となります。

このwordpressのループに関してカスタマイズしていきます。

WordPress ループの種類

WordPressのループはメインループサブループがあります。

メインループは基本、1ページに1回しか登場しないループのことで、サブループとは複数のループを作成する事が出来ます。

メインループを作成(オリジナルのループを元にカスタマイズ)する際、使用するのは、

query_posts()

サブループを作成(オリジナルのループを作成、複数のループを作成。)する際は使用するのは、

WP_Query()

を使用します。

query_posts()  メインループ

それでは、メインループをカスタマイズするquery_posts()関数についての使用方法を。
PHP

<?php $args = array(
     'category_name' => 'cat-hoge',
     'posts_per_page' => 5, 
); ?>
<?php query_posts( $args ); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); // ループ処理
   endwhile;
else;
   // not found
endif;
wp_reset_query(); //クエリをリセット
?>

とざっと書きましたが、説明を。

$args = arrey();の配列で格納されている情報を指定。
‘category_name’カテゴリ名‘post_per_page’何個記事を表示するか。の指定となります。

query_post( $args );でメインのWordPressループを変更します。

if(have_posts()) : while(have_posts()) : the_post();でループの開始。

「該当する記事があるならば、あるだけループしてください。」となります。

しかし、‘post_per_page’ => 5;としていいますので、最大5回のループとなります。

もっと簡単に記述するなら

<?php query_posts('category_name=hoge-cat,hoge-cat02&showposts=10'); ?>
<?php if(have_posts()):while(have_posts()):the_post(); // ループ処理 ?>
<?php endwhile;endif; ?>

このように記述することも可能。「,」でカテゴリを複数指定、「&」条件を追加。となります。

WP_Query() サブループ

先ほどはメインループでした。では複数ループを使う場合はどうするかと言うと、WP_Query()を使用します。

<?php $args = array(
     'category_name' => 'cat-hoge',
     'posts_per_page' => 5, 
); ?>
<?php $loop = new WP_Query( $args );
if($loop -> have_posts()):  while($loop -> have_posts()): $loop -> the_post();
  endwhile;
else;
   // not found
endif;
wp_reset_postdata(); //クエリをリセット
?>

先ほどのメインループと違う点は new WP_Query( $args ); とクエリのリセットで wp_reset_postdata(); です。

ちと分かりやすく記述。

<?php $args = array(
     'category_name' => 'cat-hoge',
     'posts_per_page' => 5, 
); ?>
<?php $loop = new WP_Query( $args ); ?>
  <?php if($loop -> have_posts()): ?>
  <?php while($loop -> have_posts()): $loop->the_post();?>
  <?php endwhile; endif; ?>
<?php wp_reset_postdata(); ?>

といった感じでしょうか。

query_posts()関数と同様

$loop = new WP_Query( 'category_name=hoge,hogege' );

と記述することも可能です。

Comment

Related Article

WordPress サイトで、長時間 500 Internal Server Error発生。解決した方法とは。

2019.06.18

PHP7に変更して、早くなりました!!ConoHaにwebアプリケーションを集約。ひとりサーバー移管プロジェクト終了。

2017.03.23

【WordPress】 VVV(Varying-Vagrant-Vagrants)を使った 最強ローカル環境構築!!

2016.11.26

【WordPress】カスタムフィールドテンプレートで マスターデータ作成。 簡単、素早くミニサイト作成

2016.11.06

【WordPress】WordPress Popular 画像が表示しない。

2016.10.19

WordPress 外部から関数呼び出し・記事一覧表示・ランダム表示

2016.04.28

WordPress + Vagrant の環境構築が超簡単に!!「VCCW」を使ったら簡単すぎて困った件。

2016.01.02

WordPress スマホサイト WPtouch 3.8.3 をカスタマイズ その2 【環境編】WordPress x Vagrant

2015.08.25

Web帳 スマートフォン リニューアルしました。WPtouch 3.8.3 をカスタマイズ その1

2015.08.24

サイト高速化!Web帳で無料で使えるCDNサーバー(CloudFlare)を試してみた。(ムームードメイン設定例)

2014.12.09

CATEGORY LIST

LATEST NEWS

あけましておめでとうございます(24日経過)

イベント

2025.01.24

アーキテクチャConference 2024に参加してきました。

イベント

2024.11.28

Mac minicomでシリアル通信を行う

電子工作

2024.11.21

Mac 容量足りない問題は、外付けSSDで快適に解決!おすすめ外付けSSD

mac

2024.10.16

Z80エミュレータ- EMUZ80の組み立て

電子工作

2024.10.13

Mac VSCodeで、SFML C++開発環境を作る。

C++

2024.09.09

Rust-SDL2 examplesをすべて試す

Rust

2024.09.01

JavaScriptで、DOMを放り投げる処理

JavaScript

2024.07.27

Rustで創る MOS 6502 CPU その2

Rust

2024.07.23

Rustで創る MOS 6502 CPU その1

Rust

2024.07.19

汎用 3D mesh/model viewerを求め。と、簡単に、FBXファイルをglTF(glb)に変換ツールを求め。

C++

2024.06.06

M1 Macで、OpenGL GLUTを使ってコンパイルする

C

2024.04.27

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US