使ってはいけないテンプレートタグ(word bench 2015/08)

29
使ってはいけない テンプレートタグ WordBench 東京 2015/08 FlipClap / 中島 真洋(ナカシマ マサヒロ)

Upload: masahiro-nakashima

Post on 22-Jan-2018

567 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: 使ってはいけないテンプレートタグ(Word bench 2015/08)

使ってはいけない テンプレートタグ

WordBench 東京 2015/08 FlipClap / 中島 真洋(ナカシマ マサヒロ)

Page 2: 使ってはいけないテンプレートタグ(Word bench 2015/08)

中島 真洋(ナカシマ マサヒロ)

九州・熊本県出身、東京都北区・赤羽在住

WEBデザイナー / WEBエンジニア

趣味:お酒、音楽、旅行

自己紹介

【ブログ】 着ぐるみ追い剥ぎペンギン http://www.kigurumi.asia

Page 3: 使ってはいけないテンプレートタグ(Word bench 2015/08)

作った公式プラグイン

Check Copy Contents (CCC)

WP CSV Exporter

Adjust Admin Categories WP Taxonomy Import

Page 4: 使ってはいけないテンプレートタグ(Word bench 2015/08)

WordPress 仕事の現場でサッと使える! デザイン教科書 (Webデザイナー養成講座)

出版社: 技術評論社

初出版

Page 5: 使ってはいけないテンプレートタグ(Word bench 2015/08)

使ってはいけない テンプレートタグ

Page 6: 使ってはいけないテンプレートタグ(Word bench 2015/08)

例えば、こんな時

Page 7: 使ってはいけないテンプレートタグ(Word bench 2015/08)

トップページの記事一覧を 「News」カテゴリーの 記事を最大5件表示したい

Page 8: 使ってはいけないテンプレートタグ(Word bench 2015/08)

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endwhile; endif; ?>

記事の一覧

Page 9: 使ってはいけないテンプレートタグ(Word bench 2015/08)

「wordpress ループ カテゴリだけ」で検索

Page 10: 使ってはいけないテンプレートタグ(Word bench 2015/08)

query_posts() を使えば出来るらしい

Page 11: 使ってはいけないテンプレートタグ(Word bench 2015/08)

<?php query_posts( 'posts_per_page=5&category_name=news' ); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endwhile; endif; wp_reset_query(); ?>

query_postsを追加

Page 12: 使ってはいけないテンプレートタグ(Word bench 2015/08)

NG!!

Page 13: 使ってはいけないテンプレートタグ(Word bench 2015/08)

query_posts()は、 プラグインやテーマで使われることが

想定されていません。

Page 14: 使ってはいけないテンプレートタグ(Word bench 2015/08)

http://codex.wordpress.org/Template_Tags/query_posts

query_postsのドキュメントページ

テーマ、プラグインで 使うなと書いてある

Page 15: 使ってはいけないテンプレートタグ(Word bench 2015/08)

じゃあ、どうするの?

Page 16: 使ってはいけないテンプレートタグ(Word bench 2015/08)

http://codex.wordpress.org/Template_Tags/query_posts

pre_get_postsをマジ使え!

Page 17: 使ってはいけないテンプレートタグ(Word bench 2015/08)

pre_get_posts を使おう

Page 18: 使ってはいけないテンプレートタグ(Word bench 2015/08)

query_posts( 'posts_per_page=5&category_name=news' );

これを止めて

Page 19: 使ってはいけないテンプレートタグ(Word bench 2015/08)

function my_pre_get_posts( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'posts_per_page', 5 ); $query->set( 'category_name', 'news' ); } } add_action( 'pre_get_posts', 'my_pre_get_posts' );

functions.phpに記述

query_posts( 'posts_per_page=5&category_name=news' );元

Page 20: 使ってはいけないテンプレートタグ(Word bench 2015/08)

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endwhile; endif; ?>

記事の一覧は変更なし

Page 21: 使ってはいけないテンプレートタグ(Word bench 2015/08)

何か良いことあるの?

Page 22: 使ってはいけないテンプレートタグ(Word bench 2015/08)

・理論上速くなる ・デザインとロジックが分離する

Page 23: 使ってはいけないテンプレートタグ(Word bench 2015/08)

他にもある

非推奨の テンプレトートタグ

Page 24: 使ってはいけないテンプレートタグ(Word bench 2015/08)

<a href="<?php bloginfo('url'); ?>">

トップページへのURL

<a href="<?php echo home_url(); ?>">

NG

OK

Page 25: 使ってはいけないテンプレートタグ(Word bench 2015/08)

<a href="<?php bloginfo('template_url'); ?>">

テーマディレクトリのURL

<a href="<?php echo get_template_directory_uri(); ?>">

NG

OK

/wp-content/themes/example/~

Page 26: 使ってはいけないテンプレートタグ(Word bench 2015/08)

あらためて、 調べなおしてみるといいかも

Page 27: 使ってはいけないテンプレートタグ(Word bench 2015/08)

最後に宣伝

Page 28: 使ってはいけないテンプレートタグ(Word bench 2015/08)

WordPress 仕事の現場でサッと使える! デザイン教科書 (Webデザイナー養成講座)

出版社: 技術評論社

非推奨タグは使ってません

Page 29: 使ってはいけないテンプレートタグ(Word bench 2015/08)

ありがとうございました!

使ってはいけない テンプレートタグ WordBench 東京 2015/08 FlipClap / 中島 真洋(ナカシマ マサヒロ)