Submit Search
WordPress クエリを攻略しよう!
6 likes
2,197 views
Yusuke Hayasaki
1 of 20
Download now
Downloaded 15 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
More Related Content
PPTX
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Nao Oec
PPTX
SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-
寛 吉田
PPTX
VisualforceでCSV...ちょっとハマったこと
Junji Imaoka
PDF
ぷらぐいんになっちゃった
Chieko Aihara
PPTX
LINE 2016 エンジニアインターン 01
LINE Corporation
PPTX
LINE 2016 エンジニアインターン 02
LINE Corporation
PDF
Intern2015 01
LINE Corporation
PPTX
LINE 2016 エンジニアインターン 03
LINE Corporation
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Nao Oec
SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-
寛 吉田
VisualforceでCSV...ちょっとハマったこと
Junji Imaoka
ぷらぐいんになっちゃった
Chieko Aihara
LINE 2016 エンジニアインターン 01
LINE Corporation
LINE 2016 エンジニアインターン 02
LINE Corporation
Intern2015 01
LINE Corporation
LINE 2016 エンジニアインターン 03
LINE Corporation
Similar to WordPress クエリを攻略しよう!
(9)
PPT
Apexコアデベロッパーセミナー(Apexコード)071010
stomita
PDF
Haikara
jewel12
PPTX
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
PDF
WordPressのためのphp基礎の基礎
Yusuke Hayasaki
PDF
CodeIgniter入門
Sho A
PDF
WordPressで投稿記事情報の取得方法
regret raym
PDF
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
Jun-ichi Sakamoto
PDF
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
PDF
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
Apexコアデベロッパーセミナー(Apexコード)071010
stomita
Haikara
jewel12
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
WordPressのためのphp基礎の基礎
Yusuke Hayasaki
CodeIgniter入門
Sho A
WordPressで投稿記事情報の取得方法
regret raym
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
Jun-ichi Sakamoto
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
Ad
More from Yusuke Hayasaki
(6)
PDF
WordPress オリジナルテーマを作ろう!
Yusuke Hayasaki
PDF
WordBench千葉 テーマをちょっとかっこよくするスライダー
Yusuke Hayasaki
PDF
WordPress — パーマリンクとクエリ
Yusuke Hayasaki
PDF
WordPress — テーマ構成について理解しよう
Yusuke Hayasaki
PDF
WordPressはGPLライセンス
Yusuke Hayasaki
PDF
体験してみようWordPress.com
Yusuke Hayasaki
WordPress オリジナルテーマを作ろう!
Yusuke Hayasaki
WordBench千葉 テーマをちょっとかっこよくするスライダー
Yusuke Hayasaki
WordPress — パーマリンクとクエリ
Yusuke Hayasaki
WordPress — テーマ構成について理解しよう
Yusuke Hayasaki
WordPressはGPLライセンス
Yusuke Hayasaki
体験してみようWordPress.com
Yusuke Hayasaki
Ad
WordPress クエリを攻略しよう!
1.
YAH! System Service クエリを攻略しよう! WordPress
2.
環境 ✤ テーマ:sample-theme140416 勉強会用の不完全なテーマデータ。その他のテーマでOK! ✤ テーマテストデータ:theme-test-data-ja-master https://github.com/jawordpressorg/theme-test-data-ja 右下のDownload
ZIP ✤ プラグイン: Show Current Template:参照テンプレートを確認 Debug Bar:クエリ文字列を確認
3.
クエリを確認する ✤ 各種変数の値を確認する方法:var_dump($variable); echo '<pre>'; var_dump(); echo
</pre> ; ✤ 特定のカテゴリアーカイブページを開いて、WPが認識しているクエリ を確認してみる ✤ 変数$query_stringの値をvar_dumpで表示してみる ✤ プラグインDebug Barで確認してみる ✤ WPがアーカイブ記事を表示するまでのステップは? ✤ URLからクエリを取得→クエリ実行→$wp_queryに格納→結果 表示
4.
クエリを確認する ✤ 各種変数の値を確認する方法:var_dump($variable); echo '<pre>'; var_dump(); echo
</pre> ; ✤ 特定のカテゴリアーカイブページを開いて、WPが認識しているクエリ を確認してみる ✤ 変数$query_stringの値をvar_dumpで表示してみる ✤ プラグインDebug Barで確認してみる ✤ WPがアーカイブ記事を表示するまでのステップは? ✤ URLからクエリを取得→クエリ実行→$wp_queryに格納→結果 表示 このステップ、大事!
5.
特定のカテゴリだけ表示を変えたい ✤ 特定のページだけ表示件数を変えたい ✤ 記事の並び順を変えたい ✤
ユーザーごと、このカテゴリは表示したくない ! ✤ 他には? ってあるでしょ?
6.
特定のカテゴリだけ表示を変えたい ✤ 特定のページだけ表示件数を変えたい ✤ 記事の並び順を変えたい ✤
ユーザーごと、このカテゴリは表示したくない ! ✤ 他には? ってあるでしょ? クエリを操作する関数は?
7.
特定のカテゴリだけ表示を変えたい ✤ 特定のページだけ表示件数を変えたい ✤ 記事の並び順を変えたい ✤
ユーザーごと、このカテゴリは表示したくない ! ✤ 他には? ってあるでしょ? クエリを操作する関数は? query_posts(); get_posts(); wp_query();
8.
特定のカテゴリだけ表示を変えたい ✤ 特定のページだけ表示件数を変えたい ✤ 記事の並び順を変えたい ✤
ユーザーごと、このカテゴリは表示したくない ! ✤ 他には? ってあるでしょ? クエリを操作する関数は? query_posts(); get_posts(); wp_query(); この使い分けが今日のテーマ!
9.
query_posts(); ✤ WordPressが投稿を表示するのに使用しているメインクエリーを置き 換える手段 ✤ query_posts('posts_per_page=1');
投稿→1件/ページ
10.
query_posts(); ✤ WordPressが投稿を表示するのに使用しているメインクエリーを置き 換える手段 ✤ query_posts('posts_per_page=1');
投稿→1件/ページ 問題が発生する!
11.
query_posts(); ✤ WordPressが投稿を表示するのに使用しているメインクエリーを置き 換える手段 ✤ query_posts('posts_per_page=1');
投稿→1件/ページ ✤ カテゴリアーカイブページで$wp_query(メインクエリ)を確認 category_nameは? ✤ ページ送りも迷子に(方法はあるけど) 問題が発生する!
12.
query_posts(); ✤ WordPressが投稿を表示するのに使用しているメインクエリーを置き 換える手段 ✤ query_posts('posts_per_page=1');
投稿→1件/ページ ✤ カテゴリアーカイブページで$wp_query(メインクエリ)を確認 category_nameは? ✤ ページ送りも迷子に(方法はあるけど) 使いません! 注 1: この関数はプラグインまたはテーマの中で使われることを想定されていません。後ほど出てくる説明にあるように、メインク エリーを変更するにはパフォーマンス面でも優れたより良いオプションが存在します。 注 2: query_posts() はページ内のメインクエリーを書き換え、新しいクエリーのインスタンスと置き換えるために使う関数として は過度に単純化され、問題が発生しやすい方法です。非効率的で(SQL クエリを再実行します)、一部の状況では適切に実行する こともできません(特にページング処理)。モダンな WordPress コードではもっと安定したメソッドを使うべきです。例えば pre_get_posts フックを使った方法などです。ひとことで言うと、query_posts() は決して使うべきではありません。 以上のことをしっかり理解し、この関数を賢く活用してください。 問題が発生する!
13.
get_posts(); と wp_query(); ✤
wp_query()はquery_posts()と同じパラメータを使用できる ✤ wp_queryのほうが高機能
14.
get_posts(); と wp_query(); ✤
wp_query()はquery_posts()と同じパラメータを使用できる ✤ wp_queryのほうが高機能 メインクエリを変更しない
15.
pre_get_posts();をマスターしよう! ✤ メインクエリ実行時のアクションフック アクションフックとは:コアのプログラムの途中に挟み込むプログラム ✤ functions.phpに記述する
16.
pre_get_posts();をマスターしよう! ✤ メインクエリ実行時のアクションフック アクションフックとは:コアのプログラムの途中に挟み込むプログラム ✤ functions.phpに記述する /**! *
pre_get_postsの演習! */! function change_posts_per_page($query) {! if ( $query->is_category('magazines') ) {! $query->set( 'posts_per_page', '2' );! }! }! add_action( 'pre_get_posts', 'change_posts_per_page' ); URLからクエリを取得→クエリ実行(ここをフックしている) →$wp_queryに格納→結果表示
17.
練習問題 ✤ トップページに特定のカテゴリの最新記事のタイトルを記事へのリンク 付で5つ表示しなさい
18.
練習問題 ✤ トップページに特定のカテゴリの最新記事のタイトルを記事へのリンク 付で5つ表示しなさい <dl>! <?php! $args =
array(! ! 'posts_per_page' => 5,! ! 'category_name' => 'books'! ! );! $dtfmt = get_option('date_format');! $myposts = get_posts( $args );! foreach ( $myposts as $post ) :! ! ?>! ! <dt><?php echo date($dtfmt, strtotime($post -> post_date)); ?></dt>! ! <dd><a href="<?php echo get_permalink($post->ID); ?>"><?php echo $post -> post_title; ?></a></dd>! <?php endforeach; ?>! ! </dl> get_posts(); を使った例:
19.
<dl>! <?php! $wp_query = new
WP_Query(); //WP_Queryの新しいインスタンスを作成! $param = array(! 'category_name' => 'books', //カテゴリ名! 'posts_per_page' => '5', //表示件数! 'post_type' => 'post', //投稿タイプ! 'orderby' => 'date', //日付でソート! 'order' => 'DESC' //新しい順! );! $wp_query->query($param); //上記のパラメータを代入! if( $wp_query->have_posts() ) : while( $wp_query->have_posts() ) : $wp_query- >the_post(); //ループ開始! ?>! ! <!-- 日付を表示 -->! <dt><?php the_time('Y年m月d日'); ?></dt>! ! <!-- パーマリンクを表示 -->! <dd><a href="<?php the_permalink(); ?>">投稿記事へのリンク</a></dd>! ! <?php! endwhile; endif; //ループ終了! wp_reset_postdata(); //メインクエリーを元に戻す! ?>! </dl> wp_query(); を使った例(小久保 勇樹さん提供):
20.
YAH! System Service クエリを攻略しよう! WordPress ありがとうございました
Download