このサイトは、只今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

ラズベリーパイ 5インチDSIタッチスクリーン ディスプレイを使う。

RaspberryPi

2021.01.11

今年読んで良かった書籍は、「Go言語でつくるインタプリタ」でした。

イベント

2020.12.31

【Qt】Macの、Qt Creatorで Dialog GUI作成

C++

2020.12.29

【Qt】Macで、Qt Creatorをbrew installしてサクッと起動する。

C++

2020.12.14

Macで、Qt5 開発 QPushButton、QSliderなどウィジェット作成

C++

2020.12.13

M1搭載 Mac miniをついにポチった件。Appleさんに翻弄される日々の記録。

mac

2020.12.06

Mac(gcc)で、C言語関数 getch関数を使う。

C

2020.12.05

Macで、Qt5をbrew installしてサクッと起動する。

C++

2020.12.02

Go言語でAssetsもシングルバイナリ化に便利な packr パッケージ

go

2020.11.25

Maker Faire Tokyo 2020に行ってきました。

イベント

2020.10.06

パックマン 解析プログラム動画から見る 追跡アルゴリズム

AI・Bot・algorithm

2020.09.23

Django (DRF)で、ユーザーのモデルを作成時にハッシュidを別で保存する。

Python

2020.09.10

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US