##前回の記事
前回の記事はこちら
前回の記事の「まずはインストール画面の入力を自動化」こちらの部分の丸ごと改良版です。
早い話が「さぁ、始めましょう」から「ログイン」までを自動化します。
##前提条件
Windows10
XAMPP
WordpressのTOPアドレスが localhost/wp12/
##作成、編集するファイル
/wp-admin/setup-config.php
/wp-admin/install.php
/main.js
この3ファイルです。
###setup-config.php, install.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
####「さぁ、始めましょう」
$(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
これで「さぁ、始めましょう」が勝手に押されます。
####「送信」
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できなくなるためです。
####インストール実行
if(last[3] == 'setup-config.php' && param =='?step=2'){
var href2 = $('a[href^="install"]').attr('href');
if(href2 != void 0){
location.href = href2;
}
}
インストール実行ボタンに設定されているhrefに飛ぶだけですね。
####ようこその画面
ここは入力が多いので地味に面倒なところですね・・・
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();
});
}
値はうまく書き換えてください(笑)
####成功しました 「ログイン」
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は抜いています。
コードの全体像
$(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;
}
}
});