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

Post on 22-Jan-2018

566 Views

Category:

Engineering

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

趣味:お酒、音楽、旅行

自己紹介

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

作った公式プラグイン

Check Copy Contents (CCC)

WP CSV Exporter

Adjust Admin Categories WP Taxonomy Import

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

出版社: 技術評論社

初出版

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

例えば、こんな時

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

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

記事の一覧

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

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

<?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を追加

NG!!

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

想定されていません。

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

query_postsのドキュメントページ

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

じゃあ、どうするの?

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

pre_get_postsをマジ使え!

pre_get_posts を使おう

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

これを止めて

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' );元

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

記事の一覧は変更なし

何か良いことあるの?

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

他にもある

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

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

トップページへのURL

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

NG

OK

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

テーマディレクトリのURL

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

NG

OK

/wp-content/themes/example/~

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

最後に宣伝

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

出版社: 技術評論社

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

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

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

top related