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

Amazon 87時間のビックセール タイムセール祭りで購入したもの

イベント

2019.04.23

Androidに Linuxを簡単にインストールするアプリ「UserLAnd」

Linux

2019.04.16

SPAサイトでの認証認可 JWT✗Rails5✗Nuxt.js

JavaScript

2019.03.24

CentOS MySQL(MariaDB) を バージョン10.3に yumでアップデート

MySQL

2019.03.22

Ubuntu 開発環境構築まとめ

ubuntu

2019.02.25

Nuxt.js と auth-module (@nuxtjs/auth)で、JWT(JSON Web Tokens)& OAuth 認証 ログイン

JavaScript

2019.02.21

HerokuでRailsをビルド buildpack、Rubyバージョンでエラー

エラー

2019.02.13

ブラウザフィンガープリントは、Cookieの代用となるのか? JSライブラリ Fingerprintjs2など。

JavaScript

2019.02.03

CPUの創りかた TD4 購入(必要)パーツ一覧

電子工作

2019.01.21

あけましておめでとうございます(かなり遅め)

イベント

2019.01.12

Vue.jsでSPA、Vuex使用するなら Nuxt.jsが超絶便利な件。

JavaScript

2018.12.23

2018年 Docker 使い方 まとめ その3

Docker

2018.12.17

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US