Top Banner
WordPressはじめの一歩 テーマ作成ハンズオン 2015/08/02 WordBench京都
129

WordBench京都版 _sハンズオン

Aug 13, 2015

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: WordBench京都版 _sハンズオン

WordPressはじめの一歩 テーマ作成ハンズオン

2015/08/02WordBench京都

Page 2: WordBench京都版 _sハンズオン

はじめに

Page 3: WordBench京都版 _sハンズオン

今日体験してほしいこと

• PHPの知識無しでもテーマは作れる

• テーマは全部自作しなくてもいい

• テーマ制作は思っているよりは簡単

Page 4: WordBench京都版 _sハンズオン

名前:岡本秀高

仕事:PHPエンジニア

地域:京都~滋賀

その他:WordBench京都モデレーター

興味:WP-API, React.js, Polymer,JSON-LD

Page 5: WordBench京都版 _sハンズオン

一応公式テーマ作者です

https://profiles.wordpress.org/hideokamoto

Page 6: WordBench京都版 _sハンズオン

アジェンダ• テーマ作成3つの方法

• PHP知識なしでもテーマを作る方法

• _sを使った作成の流れ

• トラブルシューティング

• より踏み込んだカスタマイズへ

全体的に増量してます!

Page 7: WordBench京都版 _sハンズオン

アジェンダ

• テーマ作成3つの方法• PHP知識なしでもテーマを作る方法

• _sを使った作成の流れ

• トラブルシューティング

• より踏み込んだカスタマイズへ

Page 8: WordBench京都版 _sハンズオン

テーマの作り方は 1つじゃない

Page 9: WordBench京都版 _sハンズオン

テーマ作成3つの方法

• フルスクラッチ

• 子テーマ

• スターターテーマ

Page 10: WordBench京都版 _sハンズオン

テーマ作成3つの方法

• フルスクラッチ

• 子テーマ

• スターターテーマ

Page 11: WordBench京都版 _sハンズオン

フルスクラッチで作る

一からデザインを作成し、作成したHTMLにWordPressを実装させる作り方

• メリット:自由度MAX

• デメリット:PHP知識必要

Page 12: WordBench京都版 _sハンズオン

テーマ作成3つの方法

• フルスクラッチ

• 子テーマ

• スターターテーマ

Page 13: WordBench京都版 _sハンズオン

子テーマとして作る

既にあるテーマを活用し、「子テーマ」として機能を上書きする作り方

• メリット:編集範囲が少なく済む

• デメリット:親テーマに仕様が依存しやすい

Page 14: WordBench京都版 _sハンズオン

テーマ作成3つの方法

• フルスクラッチ

• 子テーマ

• スターターテーマ

Page 15: WordBench京都版 _sハンズオン

スターターテーマで作る

最低限のPHPが実装されたテーマにCSSでデザインを追加する作り方

• メリット:PHP知識が無くても作れる

• デメリット:スターターテーマの仕様に依存、

       英語

Page 16: WordBench京都版 _sハンズオン

高野さんによるまとめ

作成方法 長所 短所

スクラッチ開発 コントロールできる 制作に時間が掛かる

子テーマ 素早く機能を 取り入れられる

親テーマへの依存が 大きい

スターターテーマ 学習しやすい 元テーマの更新を 継承しない

http://ja.naoko.cc/2012/12/02/wordpress-theme-development-approach/

Page 17: WordBench京都版 _sハンズオン

アジェンダ• テーマ作成3つの方法

• PHP知識なしでもテーマを作る方法

• _sを使った作成の流れ

• トラブルシューティング

• より踏み込んだカスタマイズへ

Page 18: WordBench京都版 _sハンズオン

PHPが書けなくても テーマは作れる

Page 19: WordBench京都版 _sハンズオン

スターターテーマでテーマを作る

スターターテーマを使えば、必要なPHPが揃った状態でテーマ制作が可能

• _s:http://underscores.me/

• bones:http://themble.com/bones/

 など

Page 20: WordBench京都版 _sハンズオン

What about _s?

Page 21: WordBench京都版 _sハンズオン

_s(underscores) Automatticが作ったスターターテーマ

テーマに必要なPHPファイルが一式揃っている

CSSが書ければオリジナルテーマが作れる

Page 22: WordBench京都版 _sハンズオン

https://wordpress.org/themes/hew/

Page 23: WordBench京都版 _sハンズオン

https://wordpress.org/themes/cinnamon/

Page 24: WordBench京都版 _sハンズオン

https://wordpress.org/themes/business-leader/

Page 25: WordBench京都版 _sハンズオン

アジェンダ• テーマ作成3つの方法

• PHP知識なしでもテーマを作る方法

• _sを使った作成の流れ• トラブルシューティング

• より踏み込んだカスタマイズへ

Page 26: WordBench京都版 _sハンズオン

_sの中身と使い方を 簡単にご紹介

Page 27: WordBench京都版 _sハンズオン

1_sのセットアップ

Page 28: WordBench京都版 _sハンズオン

_sのセットアップ

1. テーマファイルを作成

2. 開発環境へインストール

3. テーマの有効化

Page 29: WordBench京都版 _sハンズオン

_sのセットアップ

1.テーマファイルを作成2. 開発環境へインストール

3. テーマの有効化

Page 30: WordBench京都版 _sハンズオン

http://underscores.me/

Page 31: WordBench京都版 _sハンズオン

テーマファイルを作成する

• 基本設定は_sのDLページで設定可能

• とりあえず使ってみる場合なら、 「Theme Name」を入力するだけ

• 細かい設定は「Advanced Options」をクリック

Page 32: WordBench京都版 _sハンズオン

テーマ名を入れて クリック!

Page 33: WordBench京都版 _sハンズオン
Page 34: WordBench京都版 _sハンズオン

Advanced Options

• スラッグ・作者・説明文を入力できる

• スラッグは関数同士の衝突回避に使われる twentyeleven_foo() 、twentyten_foo() など

• 入力したらGENERATEでダウンロード開始

Page 35: WordBench京都版 _sハンズオン

_sのセットアップ

1. テーマファイルを作成

2.開発環境へインストール3. テーマの有効化

Page 36: WordBench京都版 _sハンズオン

開発環境へアップロード

• 先ほどDLしたzipを管理画面からアップロード

• テーマ一覧に表示されればOK

• テストデータを入れておくと便利  http://nuuno.net/note/wordpress-testdata/

Page 37: WordBench京都版 _sハンズオン

クリック!

Page 38: WordBench京都版 _sハンズオン

先ほどDLしたzipファイルを アップロードしよう

Page 39: WordBench京都版 _sハンズオン

_sのセットアップ

1. テーマファイルを作成

2. 開発環境へインストール

3.テーマの有効化

Page 40: WordBench京都版 _sハンズオン

「有効化」

Page 41: WordBench京都版 _sハンズオン
Page 42: WordBench京都版 _sハンズオン

2知って得する_sの内部構造

Page 43: WordBench京都版 _sハンズオン

No.1テンプレート階層

知って得する_sの内部構造

Page 44: WordBench京都版 _sハンズオン

テンプレート階層

archive.php single.php page.php404.php search.php

index.php

アーカイブ カテゴリ タグ 著者 etc..

個別投稿 メディア ブログ

カスタム投稿 etc..

404ページ 固定ページ 検索結果

TOPページや 下記以外のページ

Page 45: WordBench京都版 _sハンズオン

詳細はCodexでhttp://bit.ly/1Lfpj7u

Page 46: WordBench京都版 _sハンズオン

No.2テンプレートパーツ

知って得する_sの内部構造

Page 47: WordBench京都版 _sハンズオン

_sでは、パーツ別にPHPが分割されている

Page 48: WordBench京都版 _sハンズオン

header.php

sidebar.phpcontent.php

footer.php

comment.php

Page 49: WordBench京都版 _sハンズオン

content.phpは更に細分化されている

Page 50: WordBench京都版 _sハンズオン

コンテンツ階層

content-none.php

content-single.php

content-search.php

content-page.php

content.php

該当記事なし index.php search.php archive.php

個別投稿 single.php

固定ページ page.php

検索結果 search.php

下記に該当しない コンテンツ

Page 51: WordBench京都版 _sハンズオン

No.3カスタム要素知って得する_sの内部構造

Page 52: WordBench京都版 _sハンズオン

その他のカスタム要素

• jsディレクトリ:_sデフォルトのJS置き場

• layoutディレクトリ:レイアウト用CSS置き場

• languagesディレクトリ:翻訳ファイル置き場

• incディレクトリ:拡張機能置き場

Page 53: WordBench京都版 _sハンズオン

jsディレクトリ

_sにデフォルトで使用されている

JavaScriptファイルなどがある

Page 54: WordBench京都版 _sハンズオン

jsディレクトリ

• skip-link-focus-fix.js:

• customizer.js   :

• navigation.js   :

Page 55: WordBench京都版 _sハンズオン

jsディレクトリ

• skip-link-focus-fix.js:バグFIX(っぽい)

• customizer.js   :カスタマイザー用JS

• navigation.js   :ドロップダウンナビ用JS

Page 56: WordBench京都版 _sハンズオン

layoutsディレクトリ

レイアウト調整用CSSが

ちょっとだけ入ってるディレクトリ

Page 57: WordBench京都版 _sハンズオン

layoutsディレクトリ

• content-sidebar.css:

• sidebar-content.css:

Page 58: WordBench京都版 _sハンズオン

layoutsディレクトリ

• content-sidebar.css:サイドバーを右に置くCSS

• sidebar-content.css:サイドバーを左に置くCSS

中身をstyle.cssにコピペでもOK

Page 59: WordBench京都版 _sハンズオン

languagesディレクトリ

翻訳ファイルがここに入ってます

Page 60: WordBench京都版 _sハンズオン

_sは基本英語

「カテゴリ」や「タグ」「コメント」は、日本語で表示させたい・・・!

Page 61: WordBench京都版 _sハンズオン

http://bit.ly/1NlLeuSからja.moをDL

Page 62: WordBench京都版 _sハンズオン

ja.moをlanguagesディレクトリへ

Page 63: WordBench京都版 _sハンズオン

ja.moで翻訳完了!

これが・・・

Page 64: WordBench京都版 _sハンズオン

ja.moで翻訳完了!

こうなる

↓翻訳の詳細(GitHub)↓http://bit.ly/1KfIvmK

Page 65: WordBench京都版 _sハンズオン

incディレクトリ

オプション機能やカスタマイズ機能が

まとめられているディレクトリ

Page 66: WordBench京都版 _sハンズオン

incディレクトリ• custom-header.php:

• customizer.php  :

• extras.php    :

• jetpack.php    :

• template-tags.php :

Page 67: WordBench京都版 _sハンズオン

incディレクトリ• custom-header.php:「ヘッダー画像」関係

• customizer.php  :「カスタマイザー」関係

• extras.php    :クラスやtitle拡張

• jetpack.php    :Jetpackの無限スクロール対応

• template-tags.php :テンプレートタグ拡張

Page 68: WordBench京都版 _sハンズオン

その他

• rtl.css:SSCの用語言く書らか右

Page 69: WordBench京都版 _sハンズオン

3テーマにスタイルをつける

Page 70: WordBench京都版 _sハンズオン

テーマにスタイルをつける

1. 基本的なスタイル調整方法

2. <休憩>

3. とりあえずみんなで触ってみよう

4. WordPressならではのクラスを活用する

Page 71: WordBench京都版 _sハンズオン

テーマにスタイルをつける

1.基本的なスタイル調整方法2. <休憩>

3. とりあえずみんなで触ってみよう

4. WordPressならではのクラスを活用する

Page 72: WordBench京都版 _sハンズオン

基本的なスタイル調整方法

• Chromeやfirefoxの開発ツールを利用しよう

• 調整方法は通常のHTMLファイルと一緒

• WordPressならではのクラスを使って条件分け

Page 73: WordBench京都版 _sハンズオン

Chrome開発ツールの場合

Mac:[Option]キー + [command]キー + [i]キー  Win: F12

Page 74: WordBench京都版 _sハンズオン

Chrome開発ツールの場合

赤枠内にCSSを書いていく

Page 75: WordBench京都版 _sハンズオン

最後にstyle.cssに転記して保存しよう

Page 76: WordBench京都版 _sハンズオン

ちょっとだけLive Demo

Page 77: WordBench京都版 _sハンズオン

テーマにスタイルをつける

1. 基本的なスタイル調整方法

2.<休憩>3. とりあえずみんなで触ってみよう

4. WordPressならではのクラスを活用する

Page 78: WordBench京都版 _sハンズオン

今の間に_sを有効化させてねヽ(・∀・ )ノ

Page 79: WordBench京都版 _sハンズオン

テーマにスタイルをつける

1. 基本的なスタイル調整方法

2. <休憩>

3.とりあえずみんなで触ってみよう

4. WordPressならではのクラスを活用する

Page 80: WordBench京都版 _sハンズオン

とりあえずみんなで触ってみよう

1. サイトを2カラムにする

2. 記事部分のスタイルを調整する

3. ヘッダーまわりにスタイルを追加する

4. アイキャッチ画像をサイトに表示させる

Page 81: WordBench京都版 _sハンズオン

サイトを2カラムにする

Page 82: WordBench京都版 _sハンズオン

サイトを2カラムにする

layoutsディレクトリのCSSを、style.cssにコピペ

Page 83: WordBench京都版 _sハンズオン

サイトを2カラムにする

content-sidebar.cssなら右サイドバー sidebar-content.cssなら左サイドバーになる

Page 84: WordBench京都版 _sハンズオン

サイトを2カラムにする

ついでに左右に余白を設けよう

Page 85: WordBench京都版 _sハンズオン

サイトを2カラムにする

bodyか.siteにCSSを追加する

Page 86: WordBench京都版 _sハンズオン

サイトを2カラムにする

.site {

max-width: 1024px;

margin: 0 auto;

}

style.cssに追加

Page 87: WordBench京都版 _sハンズオン

記事部分のスタイルを調整する

Page 88: WordBench京都版 _sハンズオン

記事部分のスタイルを調整する

記事部分に余白と枠線をつけてみる

Page 89: WordBench京都版 _sハンズオン

記事部分のスタイルを調整する

.hentryにCSSを書き足そう

Page 90: WordBench京都版 _sハンズオン

記事部分のスタイルを調整する

.hentry {

margin: 0 0 1.5em;

padding: 20px;

border: 1px solid #e5e5e5;

}

style.cssの770行目近辺を探そう

Page 91: WordBench京都版 _sハンズオン

記事部分のスタイルを調整する

サイドバーとの余白も調整する

Page 92: WordBench京都版 _sハンズオン

記事部分のスタイルを調整する

.site-main {

margin: 0 25% 0 0;

padding: 10px;

}

style.cssに追加する

Page 93: WordBench京都版 _sハンズオン

ヘッダーまわりにスタイルを追加する

Page 94: WordBench京都版 _sハンズオン

下層ページでタイトルがpタグになる

デフォルトだとTOPと下層でスタイルがバラバラに・・・

Page 95: WordBench京都版 _sハンズオン

.site-titleクラスを使ってスタイル調整

Page 96: WordBench京都版 _sハンズオン

記事部分のスタイルを調整する.site-title{

font-size: 2rem;

font-weight: bold;

margin: 0.5em auto;

}

.site-title,.site-description {

text-align: center;

}

style.cssの一番下に書き足せばOK

Page 97: WordBench京都版 _sハンズオン

ついでにナビゲーションも

Page 98: WordBench京都版 _sハンズオン

ナビゲーションを調整する.main-navigation ul {

background-color: #ffffff;border-top: 1px solid #f5f5f5;

}.main-navigation li {

border-left: 1px solid #f5f5f5;border-right: 1px solid #f5f5f5;

}.main-navigation li:first-child{

border-left: 0px;}.main-navigation a {

padding: 10px;}header{

border-bottom: 1px solid #f5f5f5;}

style.cssの一番下に書き足せばOK

Page 99: WordBench京都版 _sハンズオン

サイトっぽくなってきた

Page 100: WordBench京都版 _sハンズオン

アイキャッチ画像をサイトに表示させる

Page 101: WordBench京都版 _sハンズオン

template-parts/content.php

<?php/** * Template part for displaying posts. * * @package _s */

?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>><?php the_post_thumbnail();?>

10-11行目の間に書き足そう

Page 102: WordBench京都版 _sハンズオン

記事タイトルの上にアイキャッチ画像が表示される

Page 103: WordBench京都版 _sハンズオン

こんな調子でCSSをいじっていくと・・・

Page 104: WordBench京都版 _sハンズオン

例えばこんな感じになる

Page 105: WordBench京都版 _sハンズオン

なんやかんやしたstyle.csshttp://bit.ly/1KALb08

Page 106: WordBench京都版 _sハンズオン

テーマにスタイルをつける

1. 基本的なスタイル調整方法

2. <休憩>

3. とりあえずみんなで触ってみよう

4. WordPressならではのクラスを活用する

Page 107: WordBench京都版 _sハンズオン

WordPressならではのクラスを活用する

• 動的にクラスを出す箇所が複数ある

• body_class()やpost_class()で設定する

• 上手く活用すれば記事別にスタイルを変更できる!

Page 108: WordBench京都版 _sハンズオン

WordPressならではのクラスを活用する

• 特定のタグの投稿のみ非表示

  .tag-投稿タグのスラッグ{ display:none;}

• 検索結果ページのみ赤文字に

  .search-results{ color:red}

• 先頭固定記事のみ黒背景

  .sticky{ background-color: black}

Page 109: WordBench京都版 _sハンズオン

クラスの出力サンプルをもっと知る

Codexにサンプルがいろいろ載ってます!

• body_class

 http://wpdocs.osdn.jp/テンプレートタグ/body_class

• post_class

 http://wpdocs.osdn.jp/テンプレートタグ/post_class

Page 110: WordBench京都版 _sハンズオン

アジェンダ• テーマ作成3つの方法

• PHP知識なしでもテーマを作る方法

• _sを使った作成の流れ

• トラブルシューティング• より踏み込んだカスタマイズへ

Page 111: WordBench京都版 _sハンズオン

トラブルシューティング

1. jQueryが使えない!

2. functions.php触ったら真っ白になった!

3. レイアウトが思ったとおりにならない!

Page 112: WordBench京都版 _sハンズオン

jQueryが使えない!

• WordPress本体のjQueryでは「$」が使えない

• 他のJSライブラリとの衝突を回避するため

• 「jQuery」か無名関数でラップして使おう

Page 113: WordBench京都版 _sハンズオン

jQueryが使えない!

(function($){

$('#foo').click();

})(jQuery);

Page 114: WordBench京都版 _sハンズオン

functions.php触ったら真っ白になった!

• functions.phpにPHPエラーが出ると管理画面も死ぬ

• functions.phpは必ずバックアップを(git推奨)

• ローカルでテストしてから本番反映しよう

Page 115: WordBench京都版 _sハンズオン

レイアウトが思ったとおりにならない!

• CSSのミスかも・・・?

• 意図したテンプレートが読まれていない可能性あり

• テンプレート階層を見直そう:http://bit.ly/1Lfpj7u

Page 116: WordBench京都版 _sハンズオン

アジェンダ

• テーマ作成3つの方法

• PHP知識なしでもテーマを作る方法

• _sを使った作成の流れ

• より踏み込んだカスタマイズへ

Page 117: WordBench京都版 _sハンズオン

_sを安全にいじる たった1つの原則

Page 118: WordBench京都版 _sハンズオン

自信がないなら PHPは使わない

Page 119: WordBench京都版 _sハンズオン

オリジナルPHPは使わない

• オリジナルPHPを使うとセキュリティがつらい echo とか echo とか echoとか

• PHPを書くならテンプレートタグで http://wpdocs.osdn.jp/テンプレートタグ

• ヘッダー画像はコピペでできる

Page 120: WordBench京都版 _sハンズオン

inc/custome-header.php

8-12行目をコピーしよう!

Page 121: WordBench京都版 _sハンズオン

header.php

コピーしたPHPを貼り付けよう!

Page 122: WordBench京都版 _sハンズオン

ヘッダー画像が表示された!

Page 123: WordBench京都版 _sハンズオン

JavaScriptやCSSを追加で読み込みさせるなら

Page 124: WordBench京都版 _sハンズオン

wp_enqueue_script() wp_enqueue_style()

Page 125: WordBench京都版 _sハンズオン

外部ファイルはwp_head()かwp_footer()

で読み込む

Page 126: WordBench京都版 _sハンズオン

任意のJSを追加する場合function theme_name_scripts() {

wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true

);}

add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );

赤文字部分をファイル名やファイルパスに書き換えればOK

Page 127: WordBench京都版 _sハンズオン

任意のCSSを追加する場合

function theme_name_style() {wp_enqueue_style(

'style-name', get_stylesheet_uri(). ‘css/origin.css’

);}

add_action( 'wp_enqueue_scripts', 'theme_name_style' );

赤文字部分をファイル名やファイルパスに書き換えればOK

Page 128: WordBench京都版 _sハンズオン

プラグインでも使うので、 wp_enqueue_scriptと wp_enqueue_styleは 覚えておくと便利b

Page 129: WordBench京都版 _sハンズオン

enjoy !