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

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

Rust - Actix Web JWT 認証認可 APIの作成

Rust

2024.02.25

Rust - Actix Web × JSON 静的ファイルをAPIで返却

Rust

2024.01.19

Rust - Actix Web × MongoDB環境をサクッと起動

Rust

2024.01.18

5分で学ぶ RustでWave Function Collapse (波動関数崩壊アルゴリズム)

Rust

2024.01.15

LLaMAモデル GGMLフォーマット(llama.cpp)をRustフレームワーク Leptosを用いて M1MacMiniでサクッと動かす。

Rust

2024.01.11

2024年 狙っているモバイルノートPC

tool

2024.01.07

MacOS XcodeにSDL2を追加

tool

2023.12.26

php 7.4にアップデート

PHP

2023.12.24

5分で覚える Flutter Flameで作る Wave Function Collapse - 波動関数崩壊アルゴリズム

AI・Bot・algorithm

2023.12.20

Flutter - Flameでゲーム作成 (キャラクターの移動)

Flutter

2023.07.23

Flutterで作る ChatGPT Prompt Manager

Flutter

2023.07.12

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US