1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ローカルWordpressをJqueryでインストールしよう

Last updated at Posted at 2020-03-18

##前回の記事
前回の記事はこちら
前回の記事の「まずはインストール画面の入力を自動化」こちらの部分の丸ごと改良版です。

早い話が「さぁ、始めましょう」から「ログイン」までを自動化します。

##前提条件
Windows10
XAMPP
WordpressのTOPアドレスが localhost/wp12/

##作成、編集するファイル
/wp-admin/setup-config.php
/wp-admin/install.php
/main.js

この3ファイルです。

###setup-config.php, install.php

.php
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="../main.js"></script>

こちらのJqueryと、main.jsのタグを</body>タグ直前に入れ込みます。

###main.js
さてここからはjsファイルを編集していきます。
※いちいち読みたくない方は最下部に完成版ありますw

####「さぁ、始めましょう」

main.js
 $(function(){
    var url = $(location).attr('pathname');
    // /wp12/wp-admin/setup-config.php

    var last = url.split('/');
    // ["", "wp12", "wp-admin", "setup-config.php"]

    var param = $(location).attr('search');
    // '' ※パラメーター今は空

    if(last[3] == 'setup-config.php' && param == ''){

        if(confirm('インストールしますか?')){
            var href = $('a[href^="setup-config"]').attr('href');
            if(href != void 0){
                location.href = href;
            }
        }
    }
}); //TOPfunction

これで「さぁ、始めましょう」が勝手に押されます。

####「送信」

main.js
    if(last[3] == 'setup-config.php' && param =='?step=1&language=ja'){
        $.when(
            // データベース名
            $('input[id="dbname"]').val(last[1]),

            // ユーザー名
            $('input[id="uname"]').val('root'),

            // パスワード
            $('input[id="pwd"]').val(''),
        ).done(function(){
            // 送信ボタンを消す
            $('input[value="送信"]').remove();

            // Submitする
            $('form[action="setup-config.php?step=2"]').submit();
        });
    }

データベース名等は自身の環境に置き換えてください。
自分はわかりやすいようにwp01~wp??のようにURLと同じようになるように
管理しているのでさっき作った変数から入力しています。

送信ボタンを消しているのはこれがあるとJqueryからSubmitできなくなるためです。

####インストール実行

main.js
    if(last[3] == 'setup-config.php' && param =='?step=2'){
        var href2 = $('a[href^="install"]').attr('href');
        if(href2 != void 0){
            location.href = href2;
        }
    }

インストール実行ボタンに設定されているhrefに飛ぶだけですね。

####ようこその画面
ここは入力が多いので地味に面倒なところですね・・・

main.js
    if(last[3] == 'install.php' && param =='?language=ja'){

        $.when(
            // サイトのタイトル	
            $('input[id="weblog_title"]').val('ローカルテストサイト'),
            // ユーザー名
            $('input[id="user_login"]').val('aaa'),
            // パスワード
            $('input[id="pass1"]').val('aaa'),
            // パスワードの確認にチェック
            $('input[name="pw_weak"]').prop('checked', true),
            // メールアドレス
            $('input[id="admin_email"]').val('email@email.com'),

        ).done(function(){
            // 送信
            $('input[type="submit"]').click();
        });
    }

値はうまく書き換えてください(笑)

####成功しました 「ログイン」

main.js
    if(last[3] == 'install.php' && param =='?step=2'){
    
        var href3 = $('a[href$="wp-login.php"]').attr('href');
        if(href3 != void 0){
            location.href = href3;
        }
    }

####これで完成
これで完成です。
うまくいっていれば下記の動画のようになっていると思います。
※confirmは抜いています。
testimg.gif

コードの全体像

main.js
$(window).load(function() {

    var url = $(location).attr('pathname');
    var last = url.split('/');
    var param = $(location).attr('search');

    if(last[3] == 'setup-config.php' && param == ''){

        if(confirm('インストールしますか?')){
            var href = $('a[href^="setup-config"]').attr('href');
            if(href != void 0){
                location.href = href;
            }
        }
    }

    if(last[3] == 'setup-config.php' && param =='?step=1&language=ja'){
        $.when(
            $('input[id="dbname"]').val(last[1]),
            $('input[id="uname"]').val('root'),
            $('input[id="pwd"]').val(''),
        ).done(function(){
            $('input[value="送信"]').remove();
            $('form[action="setup-config.php?step=2"]').submit();
        });
    }

    if(last[3] == 'setup-config.php' && param =='?step=2'){
        var href2 = $('a[href^="install"]').attr('href');
        if(href2 != void 0){
            location.href = href2;
        }
    }

    if(last[3] == 'install.php' && param =='?language=ja'){

        $.when(
            $('input[id="weblog_title"]').val('ローカルテストサイト'),
            $('input[id="user_login"]').val('aaa'),
            $('input[id="pass1"]').val('aaa'),
            $('input[name="pw_weak"]').prop('checked', true),
            $('input[id="admin_email"]').val('info@free-koba.com'),

        ).done(function(){
            $('input[type="submit"]').click();
        });
    }

    if(last[3] == 'install.php' && param =='?step=2'){

        var href3 = $('a[href$="wp-login.php"]').attr('href');
        if(href3 != void 0){
            location.href = href3;
        }
    }
});

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?