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

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

既存のWordPressサイトをローカル(vagrant等)に移行方法(MySqlエクスポート)

2014.01.03

CATEGORY LIST

LATEST NEWS

ASUS Chromebook Flip C101PAに、Visual Studio Codeをインストール

Chromebook

2018.10.15

Chromebookに、Ubuntu (Xubuntu)をインストールしたあとの日本語入力設定

Chromebook

2018.10.14

ASUS Chromebook Flip C101PAに、Ubuntu (Linux)インストール手順

Chromebook

2018.10.10

nodeのない環境にnodeを導入(HTML5ゲームも提供)し続け、1年数ヶ月経過後、かなり開発環境が整ってきたお話。

JavaScript

2018.09.26

安い!軽い!早い! ノートPC(開発環境)。 Chromebookをついに購入いたしました!

Chromebook

2018.07.22

debian & Xserver XDSLで FireFoxが真っ白のページとなる件

Linux

2018.07.08

Kindle Fire HD 8 にLinuxを導入して扱えるようにする。超コスパ Linux タブレット構築方法!!

Linux

2018.07.04

Laravel 4 を PHP 7 環境へ移行したお話。

PHP

2018.06.10

iPhoneXで、ubuntuを動かす。

サーバー

2018.06.09

仮想通貨(暗号通貨)の作り方 その2 (Gethの使い方)

暗号通貨、ブロックチェーン

2018.05.20

$PAC (パックコイン)Macでマスターノードを建てる方法

暗号通貨、ブロックチェーン

2018.05.14

ついに「ウェブ帳」リニューアルしましたぁ!!!(PC 版)

イベント

2018.05.07

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US