Web制作

裏でWordPressを修正して確認するには

WordPressで構築したサイトの修正をするにあたり、「サイトには反映せず、裏で修正を確認したい」といったときにどうやって裏で作業するかのまとめ。

管理画面からテーマ編集してはいけない

やってはいけないこと。
たとえばfunctions.phpをさわって、保存したら画面が真っ白になった…ということが起こりうる。
保存ボタンを押したらネットワークエラーで、編集した内容が反映されなかったり。
背景一色でコードがとても読みづらい。
なので必ずFTPソフトを使ってサーバーから落としてきて、バックアップをとったうえで編集するようにする。

テストサイトを用意する

本番ドメインではなく、サブドメインにWordPressをインストールして、それをステージングとして運用する。
本番とは別のデータベースを使っていれば事故は起こらず、安心して修正が行える。
ただし、運用しているうちに本番とステージングで差異が大きくなることもあるので、記事の修正・追加などは注意が必要。
記事で使用している画像のパスがステージングのまま本番に反映してしまう危険性がある。
そのため、WordPressを完全にわける場合は、投稿タイプの修正、カスタムフィールドの修正、スタイル修正、テンプレートの修正などに向いている。

WordPressプラグイン「Theme Test Drive」を使う

このプラグインは、同じWordPress内で、管理者権限でログインしていればそのアカウントだけデフォルトとは別のテーマを表示させるというようなことができる。
テストサイトを用意するよりは少ない時間で修正することが可能。
Theme Test Drive

修正用の固定ページを作成する

修正の対象のページを複製する。
もともとのスラッグ-testで固定ページを作成。

関数 is_user_logged_in()を使う

便利な関数がある。is_user_logged_in()はWordPressにログインしているかチェックする関数。
これで条件分岐して、修正内容を入れる。


<?php if(is_user_logged_in()): ?>
	<p>ログインしたユーザーのみ見れる内容</p>
<?php else: ?>
	<p>修正前の内容</p>
<?php endif; ?>


固定ページに直接入力している場合

その固定ページ用のテンプレートを作成すればいい。
page-固定ページスラッグ.php

	
<?php
/*
Template Name: ページ名 - 修正用
*/
get_header(); ?>

<?php if(have_posts()): while(have_posts()): the_post(); ?>

<?php if(is_user_logged_in()): ?>
	<p>ログインしていないと見れない内容</p>
<?php else: ?>
	<?php //固定ページに入力している内容
	the_content(); ?>
<?php endif; ?>

<?php endwhile: endif; ?>

<?php get_footer(); ?>