Chapter14 ロゴカスタマイザーとデプロイ

概要と目標 カスタムロゴ機能を追加して、
デプロイの準備をしよう。

基本的にWordPressのカスタマイズは完成したので、
カスタムロゴ機能を追加して、
スクリーンショットを用意したりデプロイの準備をしよう。

今回のゴール

RERUN

カスタムロゴの有効化管理画面から簡単に
ロゴを設定できる機能。

カスタムロゴは、WordPress 4.5 ~追加された、管理画面の「カスタマイズ」から、
容易にサイトのロゴ設定できる機能。
機能を有効にするには、タイトルやアイキャッチ画像と同様で、
add_theme_support」で有効にできる。

add_theme_support関数 ・・・ テーマやプラグインが特定のテーマ機能をサポートすることを許可する関数
add_theme_support('custom-logo', オプション)
                                  省略可

引数の詳細はWordPress Codex 日本語版を参照

主なオプション
項目 説明
'width' ロゴの横幅
'height' ロゴの高さ
'flex-width' 横幅を自由に切り取れるかどうか (true / false)
'flex-height' 高さを自由に切り取れるかどうか (true / false)
'header-text' ロゴ表示時に非表示にできる要素のclass名を配列で指定

カスタムロゴを有効化してみよう。

  1. 「dummy」 › 「functions.php」をテキストエディタで開く
  2. 下記を参考に「dummy_setup()」関数内に、カスタムロゴを有効化にする処理を記述
dummy/functions.php
/*
  カスタムロゴ
----------------------------------- */
$args = [
  'width'       => 160,
  'height'      => 32,
  'flex-width'  => true,
  'header-text' => [ 'p-logo', 'p-header__text' ],
];
add_theme_support( 'custom-logo', $args );

/*
  カスタムメニュー
----------------------------------- */
$locations = [
  'global' => 'Global Navigation'
];
register_nav_menus($locations);
  1. 上書き保存
  2. 管理画面にアクセス
    http://localhost/wp-lesson/wp-admin/
  3. 「外観」 › 「カスタマイズ」 › 「サイトの基本情報」に移動
  4. 「material」フォルダにある、「logo-primary.png」をロゴとして設定する
  5. 「サイトのタイトルとキャッチフレーズを表示」をオフにし、「公開」ボタンを押す

カスタムロゴの表示ロゴを表示したいところに、
the_custom_logo()で出力。

「カスタマイズ」から設定したロゴを出力するには、
the_custom_logo() 関数を使えば表示できる。
なお、カスタムロゴが設定されているかを判別するには、has_custom_logo()関数で判別できる。

カスタムロゴを出力してみよう。

  1. 「dummy」 › header.php」をテキストエディタで開く
  2. 下記を参考にカスタムロゴを表示するコードを記述
dummy/header.php
<div class="p-header__info">
  <h1 class="p-header__title">
    <?php
      if ( has_custom_logo() ) {
        the_custom_logo();
      }
    ?>
    <a href="<?php echo esc_url( home_url() ); ?>" class="p-logo">
      <?php bloginfo('name'); ?>
    </a>
  </h1>
  <p class="p-header__text"><?php bloginfo('description'); ?></p>
</div>
<!-- /.p-header__info -->
  1. 上書き保存
  2. サイトにアクセス
    http://localhost/wp-lesson/
  3. カスタムロゴが表示されているかを確認
ブラウザでの表示例

RERUN


スクリーンショットテーマが完成したら、
スクショを撮ろう。

テーマが完成したらサイトのスクリーンショットを撮り、テーマフォルダに配置する。
すると、管理画面からテーマ選択時に、テーマのアイキャッチ画像になる。
なお、スクリーンショットのファイル名は「screenshot.png」にする。

スクリーンショットを配置してみよう。

  1. サイトにアクセス
    http://localhost/wp-lesson
  2. スクリーンショットを撮影する
    Google Chormeの場合はデベロッパーツールを表示し、
    command + shift + pを押して、
    表示されるパネルに「full」と入力し、
    「Capture full size screenshot」を選択
    (adminバーが邪魔なときはログアウトするなどしてから撮影する)
  3. スクリーンショットのファイル名を「screenshot.png」変更する
  4. 「screenshot.png」をテーマフォルダの直下に保存する
  5. 管理画面にアクセス
    http://localhost/wp-lesson/wp-admin/
  6. 「外観」 › 「テーマ」に移動
  7. スクリーンショットが反映されているかを確認

これで基本的なテーマは完成。


本番環境の準備ローカルのWordPressを、
そのままサーバーに移行したい。

基本的にはテーマ制作はこれで完成。
このテーマフォルダをサーバのWordPressにアップすれば、
本番環境でもこのテーマが使える。
ただし、ローカルで設定した項目や、投稿した記事などは反映されないため、
現状のWorePressの環境をそのまま本番環境でも利用するには、
移行作業が必要となる。
プラグインを使ってまるっと移行する方法もあるが、
ここではプラグインを使わずに移行する方法を紹介する。

本番環境の準備をしてみよう。

まずは本番環境にデータベースを作成する。
サーバーによって作成方法は違うが、
ここでは「XSERVER」での作成方法を紹介する。

  1. サーバーパネルにログイン
  2. 「MySQL設定」をクリック
  3. 「MySQL追加」をクリック
  4. 「データベース名」を任意で入力
    (後で使うから覚えておく)
  5. 「確認画面へ進む」をクリック
  1. 「追加」するをクリック
  1. 「MySQLユーザー追加」をクリック
  2. 「ユーザー名」と「パスワード」をできる限り推測されないような文字列で設定
    (後で使うから覚えておく)
  3. 「確認画面へ進む」をクリック
  1. 「MySQL一覧」をクリック
  2. 先程作った「データベース」の、「アクセス権未取得ユーザー」から、
    今作ったユーザーを選択し「追加」ボタンを押す

これで本番環境のデータベースが作成できた。


データベースのエクスポート「phpMyAdmin」使って、
SQLをエクスポート。

まずは、ローカルにあるWordPressのデータベースをエクスポートする。
エクスポートは「phpMyAdmin」を使うと簡単にできる。

データベースのエクスポートをしてみよう。

  1. 「phpMyAdmin」にアクセス
    http://localhost/phpmyadmin/
  2. サイドバーからエクスポートするデータベースを選択
  3. 「エクスポート」をクリック
  4. 「Export method:」の「詳細 - 可能なオプションをすべて表示」を選択
  1. 「出力:」の「出力をファイルに保存する」を選択
  1. 「フォーマット特有のオプション:」の「他のデータベースシステムまたは古い MySQL サーバとの互換性:」は「MYSQL40」を選択
    (古いデータベースシステムとの互換性を確保するため)
  2. 「生成オプション」の「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する」を選択
  1. 「実行」をクリック
  1. SQLファイルがダウンロードされる。

データベースのインポートエクスポートしたSQLファイルを、
本番環境にインポート。

エクスポートしたSQLファイルは、本番環境のデータベースにインポートする。
多くのレンタルサーバでは、「phpMyAdmin」が使えるで比較的容易にインポートすることができる。
なお、すでに運営されいてるデータベースにインポートしてしまった場合は、
データベース内のデータが消えてしまうので、
必ずバックアップをとるなり注意すること。

本番環境にインポートしてみよう。

今回は「XSERVER」を使った方法を紹介する。

  1. サーバーパネルにログイン
  2. 「phpmyadmin(MySQL○.○)」をクリック
  1. データベースを作成した時の「ユーザー名」と「パスワード」でログイン
  2. サイドバーから作成したデータベースを選択
  3. 「インポート」をクリック
  4. 「ファイルを選択」をクリック
  5. エクスポートしたSQLファイルを選択
  1. 「実行」ボタンをクリック
  1. インポートができたかを確認

WordPressフォルダをアップロード本番環境にも、
WordPressをインストール

もちろん本番環境にもWordPressが必要になる。
WordPressを本番サーバーで、通常通りインストールした場合は、
「wp-content」内のテーマや、プラグイン、画像などをアップすればよい。
今回は「WordPress」のディレクトリごとアップロードする方法で紹介する。

WordPressフォルダを
アップロードしてみよう

  1. FTPクライアントソフトなどで、「wp-lesson」フォルダを公開フォルダ内にアップロード
WordPressフォルダの名前
今回は授業の為、WordPressフォルダの名前を「wp-lesson」としているが、一般的には「wordpress」や、「wp」というフォルダ名が多い。
ただし、ローカルの環境と本番サーバーの環境でフォルダ名を変更すると、サイトが表示されない原因になる可能性があるので注意すること。

config.phpの編集データベースの設定を、
本番環境に合わせる。

アップロードしたWordPressの「config.php」はローカルのデータベースの情報が掲載されている。
このままでは本番環境のデータベースが使えないので、本番環境の情報に書き換える
ちなみに、デバッグモードの設定も無効にしておく。

config.phpを編集しよう。

  1. 本番サーバーの「wp-lesson」 › 「config.php」をダウンロード
  2. ダウンロードした「config.php」をテキストエディタで開く
  3. 下記を参考データベースの情報とデバッグモードの設定を変更する
wp-lesson/wp-config.php
/** WordPress のためのデータベース名 */
define( 'DB_NAME', '【作成したデータベース名】' );

/** MySQL データベースのユーザー名 */
define( 'DB_USER', '【作成したデータベースのユーザー名】' );

/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', '【作成したデータベースのパスワード】' );

/** MySQL のホスト名 */
define( 'DB_HOST', '【本番サーバーのホスト名】' );
define('WP_DEBUG', false);
  1. 本番サーバーに「config.php」をアップロード

URLの置き換えデータベースに格納されてるURLを、
本番環境のURLに置き換える。

現状ではまだサイトにアクセスできない。
ローカルのWordPressからエクスポートしたデータベースには、
ローカルのURLが格納されている。
このURLを本番環境のものに置き換えないと、サイトにアクセスできない。
ただし、データベースの中には、シリアライズ(文字数と文字をまとめて管理する形式)されたデータになっているURLもあるので、単純に置き換えるだけでは、不具合がでる場合があってよろしくない。
そこでWordPressのお引越しページも紹介されている、「Search Replace DB」というツールを使ってURLを置換するとよい。

Search Replace DBを使ってみよう。

  1. Search Replace DB のサイトにアクセス
  2. 以下のチェックボックスに全てチェックを入れる
    • I accept this script can be a security risk
      (このスクリプトはセキュリティリスクになる可能性があることがあります)
    • I understand that this script must not be left in a public facing web server
      (このスクリプトは公開されているWebサーバーに残していけない)
    • I am a developer and I know what I'm doing!
      (私は開発者であり、このスクリプトが何をしているのか知っている)
  3. 「Name」と「Email」を入力
  4. 「SUBMIT」をクリック
  1. 入力したメールアドレスに届いたメールの中にある「here」をクリックしてダウンロードする
  1. ダウンロードした、「Search-Replace-DB-○-○-○-emaildownloads.zip」
    (「○-○-○」部分はバージョン番号)を解凍
  2. 解凍したフォルダーを本番サーバーのwordpresフォルダ内 (今回は「wp-lesson」内)にアップロード
  1. アップロードした「Search-Replace-DB-master」にアクセス
    (https://ドメイン名/wordpressフォルダ名/Search-Replace-DB-master/)
  2. 「replace」の部分にローカルのwordpressのURLを記述
    (今回の場合は「http://localhost/wp-lesson」)
    最後に「/」を付けないように注意
  3. 「with」の部分に本番サーバーのwordpressのURLを記述
    (例:「https://ドメイン名/wp-lesson」)
    最後に「/」を付けないように注意
  1. 「dry run」をクリックして、置き換え対象を確認
  1. 「live run」をクリックして、置き換えを実行する
  1. 「delete me」をクリックして、サーバーから「Search-Replace-DB-master」を削除する
Search-Replace-DB-masterは
絶対サーバーに残さない
「Search-Replace-DB-maste」はDBの内容を置き換えるツールなので、サーバー内に残っているとセキュリティ的に危険である。
その為、置き換えが完了したら速やかにサーバーから削除することが好ましい。

本番サイトにアクセス本番サイトが
正しく表示されるか確認。

URLの置き換えが完了すると、本番サイトのURLにアクセスし、正しくサイトが表示されるかを確認。
管理画面にログインする際は、ローカルで利用していた「ユーザー名」と「パスワード」でログインできる。

本番サイトにアクセスしてみよう。

  1. 本番サイトにアクセス
    (https://ドメイン名/wordpressフォルダ名/)
  2. サイトが表示されるかを確認
ブラウザの表示例

RERUN

  1. 本番サイトの管理画面にアクセス
    (https://ドメイン名/wordpressフォルダ名/wp-admin/)
  2. ローカルで利用していたユーザー名とパスワードでログイン
  3. 「ダッシュボード」にアクセスできるかを確認
  1. ユーザーのパスワードは強固なものに変更しておく
    (ユーザー名を変更する場合は、管理画面から変更できないので、「phpMyAdmin」などを利用して、データベースの「wp_users」テーブルから直接変更する必要がある。)
サイトが表示されない場合
ローカルと本番サーバーで「wordpressフォルダ」の名前が違っていたり、前項のURLの入力が誤っている場合は表示されない可能性がある。
該当箇所に気をつけてもう一度デプロイをやり直す。
なお、前者の場合は「.htaccess」を修正することで改善できる可能性もある。
また、のキャッシュのせいでローカルにリダイレクトされている場合は、キャッシュを削除してからアクセスするとよい。

まとめWordPressは便利。

WordPressはテンプレートタグを覚えれば、
そこまでカスタマイズは難しくない。

  • カスタムロゴは、add_theme_support()で追加
  • スクリーンショットは、screenshot.pngというファイル名でテーマフォルダ内に保存
  • デプロイは慎重に