WorePressでfunctions.php を編集して動かなくなってしまったときの、対策Tipsです。
ssh/scp で接続して、functions.phpを直接編集します。
もくじ
前提条件
- Xserverを利用
- WordPress環境
- 独自ドメイン設定済み
使用中のテーマを確認
WordPressの管理画面から、外観→テーマエディターと進みます。

「編集するテーマを選択」で表示されているテーマ名をメモします。

sshで接続
Xserverのサーバーパネルにアクセスして、SSH設定をクリックしてください。

「ONにする」をチェックし、「設定する」をクリックです。

「公開鍵認証用鍵ペアの生成」をクリック、適当なパスワード(これは後で使うのでメモしておいてください)を入力し、「確認画面へ進む」をクリックです。遷移後の画面で「生成する」をクリックしてください。
そうすると、”xxx.key”というファイルがダウンロードされるはずです。後で使うので、分かりやすいようにデスクトップに保存しておいてください。

今度は、サーバーパネルのサイドパネルから「パスワード情報」へ飛び、「サーバーID」をメモしてください。

サーバーパネルのサイドパネルから「サーバー情報」へ飛び、「ホスト名」をメモしてください。

Windows Keyを押して”cmd”と入力し、コマンドプロンプトを開いてください (Macを使用している方は、代わりにcmd+space keyから”Terminal”を開いてください)。

コマンドプロンプトに、下記コマンドを入力してください。
> ssh [サーバーID]@[ホスト名] -i [xxx.key] -p 10022 # 具体例は下記の通り # > ssh takumablog@sv7777.xserver.jp -i ./Desktop/takumablog.key -p 10022 # macの場合は、上記sshコマンドの「前に」下記コマンドも入力 # > chmod 600 [xxx.key]
成功するとパスワードを求められるので、「公開鍵認証用鍵ペアの生成」ステップでメモしたパスワードを入力してください。これで、ssh接続完了です。
テーマ名の大文字小文字を確認する
下記コマンドで、現在使用しているテーマ名があるかを確認します。ここでは例えば、”stinger8″を利用しているものとします。大文字小文字含めて、メモしてください。
$ ls ./[独自ドメイン名]/public_html/wp/wp-content/themes # 具体例は下記の通り # $ ls ./takumablog.com/public_html/wp/wp-content/themes # 下記のような表示が出るはず # index.php stinger8 stingerplus2 twentynineteen twentyseventeen twentysixteen twentytwenty
テーマの確認が終わったら、exitでsshを終了します。
$ exit
functions.phpの編集
ここからは、Windowsのコマンドプロンプト上での操作です。上記で調べたテーマ名を使って、functions.phpを開きます。
下記コマンドで[テーマ名]を入力する際には、先のステップで調べたものを、大文字小文字を間違えないように入力してください。[xxx.key]は、先程のsshで使用したものと同じものを指定してください。
> scp -i [xxx.key] -P 10022 [サーバーID]@[ホスト名]:/home/[サーバーID]/[独自ドメイン名]/public_html/wp/wp-content/themes/[テーマ名]/functions.php ./ > notepad functions.php # scpコマンドの具体例は下記の通り # > scp -i ./Desktop/takumablog.key -P 10022 takumablog@sv7777.xserver.jp:/home/takumablog/takumablog.com/public_html/wp/wp-content/themes/stinger8/functions.php ./ # Macの場合は、"notepad"ではなく、下記のコマンドを利用してください # open -a TextEdit functions.php
ここまでで、メモ帳が開いたかと思います。怪しい点を修正して、保存・閉じてしまってください。ここまでのステップでは、まだ編集内容がサーバーに保存されていないので、下記コマンドで編集内容をサーバーに反映させます。
> scp -i [xxx.key] -P 10022 ./functions.php [サーバーID]@[ホスト名]:/home/[サーバーID]/[独自ドメイン名]/public_html/wp/wp-content/themes/[テーマ名]/functions.php > del functions.php # scpコマンドの具体例は下記の通り # > scp -i ./Desktop/takumablog.key -P 10022 ./functions.php takumablog@sv7777.xserver.jp:/home/takumablog/takumablog.com/public_html/wp/wp-content/themes/stinger8/functions.php
お疲れ様でした! これで、functions.phpの変更内容がサーバーにも反映されました。あなたのホームページを更新して、期待通りの動作をしているか、確認してください。
もしまだ期待通りの動作をしていない場合は、このステップを何回か繰り返して、functions.phpを修正し続けてください。。。
[…] (動かなくなった際には、先述のSSHでサーバーにリモートログインして、”/home/[サーバーID]/[独自ドメイン名]/public_html/wp/wp-content/themes/stinger8/functions.php”を気合で修正してください) […]