Featured image of post StaticPressの再構築が処理中のまま止まる場合の対処

StaticPressの再構築が処理中のまま止まる場合の対処

StaticPressで再構築ボタンを押しても処理中のまま止まってしまう原因はプラグインのjQueryの既存バグ。開発者ツールでエラー箇所を確認し、該当行の前に1行追加するだけで処理が進むようになります♪

624文字

再構築が進まない・・・

先日、WordpressサイトStaticPressプラグインを利用して静的ページ化する方法についてご紹介致しました。
関連記事 【StaticPress】WordpressのブログやサイトをHTML化して爆速管理しよう【使い方/インストール】 2018/05/05 3820文字 約8分で読めます IT Mac Windows Wordpress カスタマイズ

しかし、たまに以下のように再構築を行った際に処理中のまま動かなくなってしまう事があります。

うぅむ。。。なぜだ。。。orz

原因

開発者ツールを開いてみると、以下のようなエラーログが出力されていました。

エラーログ
Uncaught TypeError: Cannot read property 'top' of undefined
    at Object.success (admin.php:261)
    at i (load-scripts.php:2)
    at Object.fireWith [as resolveWith] (load-scripts.php:2)
    at y (load-scripts.php:4)
    at XMLHttpRequest.c (load-scripts.php:4)


エラーが発生している部分はこの部分のようですね。

/var/www/html/<Wordpressインストールディレクトリ>/wp-content/plugins/staticpress/includes/class-static_press_admin.php
//311行目辺り
$('html,body').animate({scrollTop: $('li:last-child', ul).offset().top},'slow');

どうやら、jQueryで取得しようとしている$('li:last-child', ul).offset()の要素が取れずにいるため、結果としてtopプロパティが読めずにエラーが発生しているようです。
これはおそらくプラグイン側の既存バグのようです。

対処方法

対処方法はとても簡単です。

エラーが発生していた行の前に以下のように1行追加してみましょう。

/var/www/html/<Wordpressインストールディレクトリ>/wp-content/plugins/staticpress/includes/class-static_press_admin.php
//311行目辺り
if( !($('li:last-child', ul).offset() === void 0) )//追加
    $('html,body').animate({scrollTop: $('li:last-child', ul).offset().top},'slow');

確認

では、もう一度再構築ボタンを押して動作確認してみましょう。

エラーが出ずに処理が進むようになりましたね♪

終わりに

以上のように、プラグイン側の既存バグなのでプログラミングの知識が無い方では、ハマってしまうポイントだと思われます。

同じように困っている方はこちらの記事を参考に対応してみてください。