Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
⑲jQueryをおぼえよう!その5
Nishida Kansuke
Wordpressで自分好みのテーマを作る
Takashi Uemura
Word press34
BREN
愛と涙のWordPress無理やりカスタマイズ事例集
Hidekazu Ishikawa
WordPress実践 導入からカスタマイズまで
Takashi Uemura
Djangoによるスマホアプリバックエンドの実装
Nakazawa Yuichi
第2回こけむさズword press部
Yuki Suzuki
Word press 3.5RC2 - パーフェクト functions.php -
BREN
1
of
44
Top clipped slide
WordPressで投稿記事情報の取得方法
Nov. 17, 2012
•
0 likes
12 likes
×
Be the first to like this
Show More
•
27,755 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
第6回ゆるふわ勉強会。メインループとサブループ。
regret raym
Follow
Developer at PAKUTASO,
Advertisement
Advertisement
Advertisement
Recommended
これからのpre_get_postsの話をしよう
Hishikawa Takuro
66.5K views
•
99 slides
WordPress関数の処理コストを考えよう
Naoki Matsuda
3.7K views
•
46 slides
WordPress のキャッシュ機構
katanyan
12.2K views
•
106 slides
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
165.3K views
•
59 slides
What's new! TwentyThirteen + WordPress3.6
Takashi Uemura
20.2K views
•
57 slides
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
Takashi Uemura
10.3K views
•
56 slides
More Related Content
Slideshows for you
(20)
⑲jQueryをおぼえよう!その5
Nishida Kansuke
•
1.6K views
Wordpressで自分好みのテーマを作る
Takashi Uemura
•
2.3K views
Word press34
BREN
•
8.9K views
愛と涙のWordPress無理やりカスタマイズ事例集
Hidekazu Ishikawa
•
9.5K views
WordPress実践 導入からカスタマイズまで
Takashi Uemura
•
1.6K views
Djangoによるスマホアプリバックエンドの実装
Nakazawa Yuichi
•
25K views
第2回こけむさズword press部
Yuki Suzuki
•
986 views
Word press 3.5RC2 - パーフェクト functions.php -
BREN
•
11.9K views
WordBeach @kurudrive
Hidekazu Ishikawa
•
3K views
CodeIgniter入門
Sho A
•
13.1K views
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
Takashi Uemura
•
3.8K views
ゼロからつくるWord pressテーマ第9回
Hitsuji
•
2.3K views
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
Takayuki Shimizukawa
•
3.9K views
WordPressのCSSを 理解しよう!
BREN
•
4.2K views
SaCSS vol. 24
jun sugimoto
•
531 views
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
•
4.4K views
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Tetsu Yama
•
6.2K views
concrete5デザインカスタマイズに必要なPHPの知識
Hishikawa Takuro
•
3.8K views
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
•
9.1K views
ブログの枠を超える?ためのWordPressカスタマイズ入門
muracchi
•
25.1K views
Viewers also liked
(20)
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
Kazuhiro Hara
•
14.1K views
WordPressで作る世界遺産サイト|カスタムフィールドとカスタム投稿編
Yoshinori Kobayashi
•
2K views
Photoshop cs5 read me
Peter Rus LION
•
1.2K views
Secrets for Growing Conference Sponsorship Revenues
Donna Kastner
•
368 views
Incidents
Ed Mumm
•
234 views
21st century skills
Germain Anthony
•
694 views
Port of Halifax presentation
Halifax_Gateway
•
746 views
Iltgel
Davaa-Ochir Azzaya
•
1.1K views
Honey
Makala (D)
•
1.1K views
Pitch
Michael93
•
242 views
Presentation1
Devavrata Singh
•
176 views
Aistente empresarial
lore04val2012
•
192 views
Office location photos
kylelabrache
•
166 views
Perdoar Não é Preciso
Sandra Braconnot
•
146 views
Ok. rude hand gestures of the world
Gede Saputra
•
6.6K views
Rain, rain again..
Makala (D)
•
1.1K views
Lots of baskets full of Easter eggs
Makala (D)
•
1.2K views
Pint of science pdf friendly-2
Jon Reades
•
175 views
航海王電子書
東偉 蘇
•
436 views
Library information centre
spiralz
•
323 views
Advertisement
Similar to WordPressで投稿記事情報の取得方法
(20)
101210 supreme web adobe seminar Nagoya
tamotsu toyoda
•
828 views
WordPressとjQuery
Seto Takahiro
•
3.3K views
WordPressプラグイン作成入門
Yuji Nojima
•
38.9K views
脱コピペ!デザイナーにもわかるPHPとWP_Query
Hidekazu Ishikawa
•
4.7K views
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
タカシ キタジマ
•
10.4K views
WordPress と Bootstrap
株式会社ガリレオ(開発グループ)
•
696 views
ゼロからつくるWord pressテーマ第5回 後編
Hitsuji
•
1.2K views
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
hokori matu
•
74.7K views
WordPress公式テーマ登録のための5ステップ
Mignon Style
•
102.2K views
ゼロからつくるWord pressテーマ第6回
Hitsuji
•
3.9K views
WordPress テーマ作成&PHP超入門
Michinari Odajima
•
6K views
WordBeachDeathMarchWorkshop
takashi ono
•
1.5K views
テンプレートエンジンって何?
Shoichi Takahashi
•
872 views
2014/03/29 WordBench TOKYO
Takashi Kitamura
•
5.1K views
20091030cakephphandson 01
Yusuke Ando
•
1.3K views
10分でわかるFuelPHP @ 2011/12
kenjis
•
4.2K views
Php+Word Press
Hideo Kashioka
•
7.6K views
SaCSS vol.24
jun sugimoto
•
314 views
フラットなPHPからフレームワークへ
VOYAGE GROUP
•
1.7K views
フラットなPHPからフレームワークへ
Masao Maeda
•
14.6K views
More from regret raym
(18)
React入門-JSONを取得して表示する
regret raym
•
19.2K views
SlackにHubotを設定して対話する
regret raym
•
3.8K views
CreateJSを使ったアニメーション表現の基礎
regret raym
•
5.3K views
1年間で100万PV増やしたコンテンツ運用と最適化|写真素材サイトぱくたそ
regret raym
•
21.1K views
FluentdとGrothForecastをインストールする
regret raym
•
1.6K views
Chefで作る開発環境
regret raym
•
3.8K views
Dockerの導入
regret raym
•
1.4K views
Jenkinsの導入 vol.02 Bitbucketと連携する
regret raym
•
6.4K views
Jenkinsの導入 Vol.01
regret raym
•
2.9K views
MT東京 ぱくたそ/PAKUTASO
regret raym
•
676.5K views
今から始めるPhotoshopによるWeb制作-初期設定編
regret raym
•
14.6K views
Web制作のアレコレ
regret raym
•
1.2K views
Yurufuwa007
regret raym
•
2.7K views
WordCamp Tokyo2012 handson Portfolio
regret raym
•
1.4K views
WordCamp Tokyo2012 Session
regret raym
•
2.4K views
Movable typeでモバイルギャラリーサイト
regret raym
•
2.1K views
Css拡張言語のコトハジメ
regret raym
•
2.5K views
Wp html5
regret raym
•
1.2K views
Advertisement
WordPressで投稿記事情報の取得方法
WordPressで投稿情報の取得方法
第6回ゆるふわ勉強会
プロフィール
• Yuu / Yuji Tsukaguchi • Web Designer Community • WordBench 東京 at GMO(STAFF) • Movable Type Developer Meet up Twitter : regret_raym Tokyo 2012(LT) blog : creator-life.net • WordCamp Tokyo 2012 (Session&Handson)
WordPressで投稿情報の取得
投稿の基本項目とタグ
項目 表示用関数タグ フィールドタイプ タイトル <?php the_title();?> テキストフィールド 本文 <?php the_content();?> テキストエリア 抜粋 <?php the_excerpt(); ?> テキストエリア タグ <?php the_tags(); ?> テキストフィールド カテゴリ <?php the_category?> チェックボックス サムネイル画像 (アイキャッチ) <?php the_post_thumbnail(); ?> 参照フィールド ファイル名(ス <?php echo $post- テキストフィールド ラッグ/slug) >post_name; ?> 公開日付 <?php the_date(); ?> テキストフィールド ※抜粋、サムネイルなどは予め、テーマのfunctions.phpで機能を有効化する必要があります。 ※実際はif文や、変数に入れたり使いまわしたりするので、上記以外にもタグはいっぱいあります。
表示させるために • タグだけを張っても、「え、それどこの記事の
タイトルなの?」ってなります。 • 記事が1000件あったとしたら、どれを表示する とか、どれだけ表示するとか条件を指定してあ げなければなりません。 • WordPressでは表示するために、ループ処理を 書く必要があります。
最新記事10件の タイトルと内容を表示する
投稿情報を読み込む <?php the_post();
// 投稿情報を読み込む ?>
読み込んだ情報を表示させる <?php the_post();
// 投稿情報を読み込む the_title(); // タイトルを表示する the_content(); // 本文を表示する ?>
記事が投稿されているか調べる <?php have_posts();
// 投稿があるか調べる the_post(); // 投稿情報を読み込む the_title(); // タイトルを表示する the_content(); // 本文を表示する ?>
if文を使おう <?php if (
have_posts() ) { // 記事があったらここの記述が表示 } else { // なかったらここの記述が表示される } ?>
調べた結果で表示を変える <?php if (
have_posts() ) { // 記事があったら the_post(); the_title(); the_content(); } else { // 記事がなかったら echo ’<p>記事がありませんでした</p>’; } ?>
調べた記事分を繰り返す <?php if (
have_posts() ) { while ( have_posts() ) { // 記事あるだけ繰り返す the_post(); the_title(); the_content(); } } else { echo ’<p>記事がありませんでした</p>’; } ?>
ループ完成 <?php if (
have_posts() ) { while ( have_posts() ) { the_post(); the_title(); the_content(); } } else { echo ’<p>記事がありませんでした</p>’; } ?>
PHPの記述を分ける <?php
分かりやすいように、 if ( have_posts() ) { ?> カッコの後ろなどに <?php while ( have_posts() ) { 「?>」を入れる the_post(); ?> <h2><?php the_title(); ?></h2> <?php the_content(); ?> <?php } ?> <?php } else { ?> <p>記事がありませんでした</p> <?php } ?>
ちょっと整理する <?php if (
have_posts() ) { ?> <?php while ( have_posts() ) { the_post(); ?> <h2><?php the_title(); ?> <?php the_content(); ?> <?php } ?> 改行とか空白を消して整理 <?php } else { ?> <p>記事がありませんでした</p> <?php } ?>
WordPressの書き方に倣う <?php if (
have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <h2><?php the_title(); ?> <?php the_content(); ?> <?php endwhile; ?> { → : に変更 } → end~~に変更 <?php else : ?> <p>記事がありませんでした</p> <?php endif; ?>
ループ完成 <?php if (
have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <h2><?php the_title(); ?> <?php the_content(); ?> <?php endwhile; ?> <?php else : ?> <p>記事がありませんでした</p> <?php endif; ?>
ここまでのまとめ • ここまでがWordPressのメインループと
呼ばれる記述部分 • 次のページからは、メインループの表示 条件を変えたり、表示する条件を変えて ループを複数作りたい場合の変更方法
表示条件を変更しよう WordPressでは、$wp_query の値を変更する ことで、表示する条件を変えることができます。
表示条件の変更方法 • query_posts関数を使う • get_posts関数を使う •
WP_Queryクラスを使う • クエリーの改変 – pre_get_postsとis_main_query(WP3.3以上)
query_posts関数
query_postsとは? query_posts は
WordPressループ(メインループ)で表示される投稿 を変更するために使います。 • 使用例 – 指定した期間の投稿すべてを表示する。 – 投稿の表示順序を変更する。 • 指定できる条件 – 投稿者、カテゴリ、タグ、タクソノミー、投稿・固 定ページ、ページ送り、オフセット、並び順・並び 替え、先頭固定投稿、日時、カスタムフィールド – 条件の組み合わせと除外 テンプレートタグ/query posts より http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83% AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts
query_posts <?php $args
= array( ここに条件書く ); // ループ条件を書く query_posts( $args ); ?> // ループ条件セット <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> ~省略~ <?php endwhile; ?> <?php else : ?> <p>記事がありませんでした</p> <?php endif; ?> <?php wp_reset_query(); ?> // ループ条件をリセット
query_postsの注意点 • query_postsは、表示条件を上書き処理している。 • ページ送りのナビゲーションやカテゴリ選択を無効化し
てしまう。query_postsの引数に、$query_stringを与 えれば無効化された情報が参照できる。 • wp_reset_query() を呼び出して変更した条件をきちん とリセットすること。 • データベースへのアクセスが増える。
get_posts関数
get_postsとは? get_postsは、複数のループ(マルチループ・サブループ)を作成する ために使います。 • 使用例
– query_postsループ以外のループを作成する – 現在の記事の添付ファイルを表示する • 指定できる条件 – WP_Queryクラスを利用しているため、gets_posts のほうが指定できる条件が細かい • wp-includes/post.phpにソースコードがある テンプレートタグ/get posts より http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3% 83%88%E3%82%BF%E3%82%B0/get_posts
get_posts <?php
$args = array( ここに条件書く ); // ループ条件を書く // ループ条件セット $my_posts = get_posts( $args ); // グローバル変数を読み込む global $post; ?> <?php if ( have_posts() ) : ?> <?php foreach ( $my_posts as $post ) : setup_postdata( $post ); ?> ~省略~ // foreach文を使って <?php endforeach; ?> 配列の数だけループ <?php else : ?> <p>記事がありませんでした</p> <?php endif; ?> <?php wp_reset_postdata(); ?> // ループ条件をリセットする
get_postsの注意点 • get_postsはグローバル変数$wp_queryを上書
きをせずに、新たなクエリーを作成する • query_postsと初期値の値が異なる – suppress_filtersの初期値がtrue – ignore_sticky_postsの初期値がtrue – no_found_rowsの初期値がtrue
WP_Queryクラス
WP_Queryクラスとは? •
WP_Query は wp-includes/query.php に定義されているクラスで、WordPress ブログへの複雑なリクエストを取り扱います。 wp-blog-header.php (バージョン 2.0 では WP クラス) が $wp_query オブジェクトに現在のリクエストを定義する 情報を与えることで、$wp_query はどのタイプのクエリを扱っているのか (カテゴ リーアーカイブ、年月別アーカイブ、フィード、検索など) を確定し、要求された投 稿を取り出します。$wp_query はリクエスト上の情報を多く保持していて、後から でも利用することができます。 関数リファレンス/WP Query より http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83% 95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query#WP_Query.E 3.81.AB.E5.83.8D.E3.81.8D.E3.81.8B.E3.81.91.E3.82.8B WP_Queryクラスは、WP_Query オブジェクトを新たに生成するため、 get_post関数同様に複数のループを作ることができます。
WP_Queryクラス <?php $args
= array( ここに条件書く ); $my_query = new WP_Query( $args ); ?> <?php if ( $my_query->have_posts() ) : ?> <?php while ( $my_query->have_posts() ) : $my_query- >the_post(); ?> <?php endwhile; ?> <?php else : ?> <p>記事がありませんでした</p> <?php endif; ?> <?php wp_reset_postdata(); ?>
クエリーの改変 pre_get_postsとis_main_query
デフォルトの表示条件の変更 • メインループしか使わない場合かつ、その表示を変えた
い場合は、query_postsを使わずに、pre_get_posts アクションを使う。 • is_main_queryで条件判定することにより、アクション の影響をメインクエリーのみに指定することができる
functions.phpに追記 例)カテゴリーアーカイブだったら表示する件数を5件にする function category_display_five_articles( $wp_query
) { if ( $wp_query->is_main_query() && $wp_query->is_category() ) { $wp_query->set( 'posts_per_page', 5 ); } } add_action( 'pre_get_posts', 'category_display_five_articles' ); 3.3の新しい関数 is_main_query を使おう より http://www.warna.info/archives/1964/
ここまでのまとめ • メインループの条件を変更するなら、query_postsを使う • メインループ以外にループがあるなら、get_postsを使う •
メインループしかそもそも使わないのであれば、query_postsは使 わずに、pre_get_postsアクションでデフォルト値を変えてしまお う。 • WP_Queryクラスを使えば、get_postsと同じように独自ループが 作れる。
query_postsとget_postsの違い メインループとサブループ
メインループという箱がありました。 この箱の色は白色です。 この箱の色を赤色に塗り替えたい。 そう願ったある日のこと。
query_posts メインループを塗るための専用筆 「query_posts」を貰いました。
箱はめでたく赤色に染まりました。
箱を違う色で量産したいと 思いましたが、query_posts は使い切りなので、新しい 箱と筆が必要になりました。
get_posts 新しい箱「サブループ」を塗るための専用筆 「get_posts」を貰いました。
get_postsという筆を使って 色を塗りました。 しかもこの筆は、何度でも 使うことができます。
いろいろな箱が量産できました
おしまい
Advertisement