web-dev-qa-db-ja.com

更新中にWordPressページを制限する方法

私は私のWordpressサイトのデザインと内容へのアップグレードをするつもりです。この間、私はホームページを公開したいだけです。 (プラグインなどを介して)これをロックするための良い方法はありますか。

私はGoogleからの回答を思いつくことができません。

ありがとう、ジェイソン

2
Jason

これは私が構築中の間に私が私のサイトに使用したコードの小さな断片です。

<?php
/* ROUGH METHOD OF DENY ACCESS */
    $underconstruct = array(121, 46, 124, 97);
    if(!is_user_logged_in() && !in_array(get_the_ID(), $underconstruct)) {
        wp_redirect(get_permalink(121));
        exit();
    }
?>

これを私のheader.phpの一番上に置きます。
$ underconstruct配列は、ログインしていないすべてのユーザーに表示されるページ/投稿IDです。それらがログインしておらず、本来あるべきページの1つにもいない場合は、リダイレクトされます。ユーザーがログインしている場合は、すべて通常どおりに進行します。

0
Evan Yeung

WordPressは動的なWebアプリなので、他のすべてが更新されているときにホームページを利用できるようにするのは困難です。

プラグインまたはWordPressコアのアップデートを実行するたびに、メンテナンスモードが開始されます。これは「しばらく利用できません」ページを示しています。

上記の方法を使用しても、更新スクリプトの実行中に訪問者がサイトにアクセスしようとすると、訪問者は標準のメンテナンスページを見ることになります。

私が思うに最善の方法はあなた自身のmaintenance.phpファイルを作成することであり、これは静的ページよりも優れています。

.. NB私はメンテナンスページのスクリーングラブを表示しているだけなので、何が達成できるかについて少し考えてみてください。 enter image description here

あなたは私の maintenance.php の動作を見ることができます

メンテナンスモードWordPressをメンテナンスモードにするには、.maintenanceフォルダに/wordpressという名前のファイルを作成します。

私はそれを見つけることができるように私はいつもaaaa.maintenanceとして保存されています。

メンテナンスモード - ログイン中のユーザーは許可されています。
このステップにより、ログインしたユーザーはWP管理者にアクセスしてフロントエンドにアクセスすることができます。

aaaa.maintenanceを編集して、次のコードを挿入してください。

<?php
function is_user_logged_in() {
$loggedin = false;
foreach ( (array) $_COOKIE as $cookie => $value ) {
    if ( stristr($cookie, 'wordpress_logged_in_') )
        $loggedin = true;
}
return $loggedin;
}
if ( ! stristr($_SERVER['REQUEST_URI'], '/wp-admin') && ! stristr($_SERVER['REQUEST_URI'],         '/wp-login.php') && ! is_user_logged_in() )
$upgrading = time();
?>

あなた自身のmaintenance.phpを作成してください
wp-contentの下にmaintenance.phpという名前のファイルを作成します

ファイルを開き、次のコードを追加してください。

<?php
$protocol = $_SERVER["SERVER_PROTOCOL"];
if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol )
    $protocol = 'HTTP/1.0';
header( "$protocol 503 Service Unavailable", true, 503 );
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<!--- insert HTML here including hard coding your CSS -->

</body>
</html>
<?php die(); ?>

ファイルの下部に<?php die(); ?>があることを確認してください。

だから今あなたはあなたがあなたが.maintenanceにaaaa.maintenanceの名前を変更するときはいつでも呼び出すことができるあなた自身の静的なページを持っています

ログインしていなくても/wp-adminにアクセスできます。

0
Damien