WordPress バージョンアップ後ログイン時に「データベースの更新が必要です」

WordPress バージョンアップ後、管理画面にログインしようとしたら「データベースの更新が必要です」の画面が表示されたときの対応方法

原因を調べてみる

このままではログインできないので原因を調べてみました。

そもそもなぜ「データベースの更新が必要です」というメッセージが表示されるのかというと、WordPressのファイルで定義されているデータベースバージョン値と、DBに入っているデータベースバージョン値が異なるからです。
WordPressのアップデートをおこなうと、(データベースのバージョンが上がる場合)まずはファイルで管理されているデータベースバージョン値(/wp-includes/version.php内に記載)が更新されます。
その後、ログイン画面を開いた際に、ファイルの値とDBに保存されている値(wp_postmetaテーブルにmeta_key「db_version」として保存されています)を比較して差分があればWordPressは「データベースの更新が必要だ!」と認識してメッセージを表示します

「データベースの更新が必要です」無限ループを解決|WordPressエラー復旧事例 (tsukuriba.co.jp)

具体的にどうするか

違うなら同じにすりゃあいいじゃん!ってことになりますが、じゃあ具体的にどうするか?

  1. version.phpの値を現在のデータベースの値(56657)に書き換えてアップロードする。
  2. 現在のデータベースの値を書き換える。(56657)から(57155)に。
  3. WordPressのバージョンを前のバージョンに戻す。(6.5を6.4.3にダウン)

上記を思いつきましたが、どれも実用的な方法とはいえません。

  1. WordPressの更新の度に書き換えたversion.phpをアップロードしなくてはならない。
  2. データベースを自身で書き換えるのは(データベースを)壊してしまうリスクがあり危険すぎる。
  3. 前のバージョンに戻しても自動更新機能で更新されるのでEasy Updates Managerなどのプラグインで管理が必要。

つまり、WordPressにデータベースを更新させればよいわけで、むしろ着目すべき点は「MySQL 5.5.5以上」が必要だと表示される点にあります。データベースバージョン値 (57155)はそのままに、MySQLバージョン値を下げて書き換えたversion.phpをアップロードしてあげれば、「データベースの更新が必要です」の画面が表示されても「WordPressデータベースを更新」ボタンを押せばデータベースが更新されてログイン画面が表示されます。

/**
 * Holds the required MySQL version.
 *
 * @global string $required_mysql_version
 */
$required_mysql_version = '5.5.5';

上記を

/**
 * Holds the required MySQL version.
 *
 * @global string $required_mysql_version
 */
$required_mysql_version = '5.0';

に書き換えたversion.phpをアップロードしてあげます。

データベースバージョン値が更新されたのを確認できます。書き換えたversion.phpをアップロードするというひと手間がありますが、最もリスクが低い方法だと思いますがいかがでしょうか。

「Theme Switcha」テーマ切り替えプラグイン

プラグインのインストールと有効化
管理画面の【プラグイン > 新規追加】を開き「Theme Switcha」を検索
Theme Switchaをインストール&有効化

Theme Switchaの使い方
管理画面の【設定 > Theme Switcha】を開いて「Enable Switching」の項目にチェックを入れて、テーマの切り替えテストができるようにします。

Enable theme switchingにチェックを入れて保存
ここにチェックが入っていないと、テーマの切り替えテストを行うことができません。

[変更を保存]すると、設定画面下部にインストール済みテーマ一覧が表示されます。

表示を確認したいテーマをクリック
ここからテーマを選択することで、公開中のサイトには影響を与えることなく、テーマを切り替えた場合の状態を確認できます。

テーマを切り替えた場合の表示
ただし、親テーマ、子テーマの切り替えについては、有効化しているテーマで行っているカスタマイザー設定が適用された状態で表示されます。

その他オプション
Enable Admin Area:管理画面の項目もテーマのものに切り替える
Enable Toolbar Menu:ツールバーにテーマ切り替えのメニューを表示する
表示確認が目的であれば「Enable Switching」の設定だけでOKです。

テーマ切り替えリンク

Theme Switcha では、他のユーザーと共有できるテーマ切り替えリンクを作成することもできます。開始するには、次の手順に従います。

テーマのスラッグ/名前を決定します(テーマディレクトリの名前と同じである必要があります)
あなたのサイトから任意のURLを選択し、?theme-switch=mytheme
たとえば、「My Awesome Theme」という名前のテーマが というディレクトリにある場合/my-awesome-theme/、次のようなテーマ切り替え URL を作成します。

https://example.com/?theme-switch=my-awesome-theme
ブラウザにその URL を入力するとどうなるでしょうか? それはプラグインの設定「許可されたユーザー」によって異なります。

許可されたユーザーが「全員」に設定されている場合、URLにより誰でも指定されたテーマに切り替えることができます。
許可されたユーザーが「管理者のみ」に設定されている場合、URLによりログインしている管理者レベルのユーザーは誰でも指定されたテーマに切り替えることができます。
許可されたユーザーが「パスキーのみ」に設定されている場合、URLで指定されたテーマに切り替えるにはパスキーが必要です。
次のセクションでは、パスキー リンクの作成方法について説明します。他の 2 つのオプション「Everyone」と「Only Admin」では、URL をそのまま共有するか、次の例のようにクリック可能なハイパーリンクにすることができます。

パスキー リンクは、ユーザーに WP 管理エリアへのアクセス権を与えずに、プライベートなテーマの切り替えを可能にする優れた方法です。 パスキー リンクを作成するには、次の手順に従います。

テーマスイッチの設定ページにアクセスしてください
「切り替えを有効にする」オプションを有効にする
「許可されたユーザー」オプションでは、「パスキーを持つユーザーのみ」を選択します。
変更内容を保存
変更を保存すると、利用可能なテーマごとにサムネイルが表示されます。パスキー リンクを取得するには:

希望するテーマのサムネイル画像を右クリックします
「リンクアドレスをコピー」を選択してURLをクリップボードにコピーします
完了です。これで、どこにでも貼り付けられるパスキー リンクができました。次のようになります。

https://example.com/?theme-switch=my-awesome-theme&passkey=1234567890
したがって、パスキー リンクをそのまま共有することも、次の例のようにクリック可能なハイパーリンクにすることもできます。

Passkey Links に関する注意事項は次のとおりです。

パスキーリンクはログインしたユーザーとログアウトしたユーザーの両方に有効です
パスキーリンクにはテーマ名と有効なパスキーが含まれている必要があります
テーマ名はテーマスラッグである必要があります(例:「My Theme」ではなく「my-theme」)
適切なパスキー形式の例を次に示します。

https://example.com/?theme-switch=THEMESLUG&passkey=PASSKEY
ここで、「THEMESLUG」をプレビューしたいテーマのスラッグに置き換え、「PASSKEY」を現在のパスキー(「Passkey」設定で提供)に置き換えます。以下は、パスキー URL からクリック可能なリンクを作成する方法を示す例です。

参照:https://ja.wordpress.org/plugins/theme-switcha/

 

サブディレクトリのWordPressをドメイン直下のルートディレクトリで公開

サブディレクトリのWordPressをドメイン直下のルートディレクトリで公開する方法

作業前の公開URL https://example.com/wp
作業後の公開URL https://example.com
作業行程
1. WordPressの管理画面でサイトアドレスを変更する
設定 > 一般設定 内の「サイトアドレス(URL)」の /wp を削除し、[変更を保存] をクリックします。
注意:「 WordPressアドレス(URL)」は変更しないで下さい。

変更前
URL https://example.com/wp

変更後
URL https://example.com

2.パーマリンク設定を保存する
設定 > パーマリンク へ移動し、何も変更せずに[変更を保存] をクリックします。
この操作で、 WordPressに更新を伝えます。

3.ファイルの複製
FTPで、 インストールディレクトリにある index.php と .htaccess を、ルートディレクトリにコピーします。
注意:移動ではなくコピーを行います。

4.コピーした index.php を編集する
ルートディレクトリにコピーした index.php を編集します。
WordPressが インストールされているサブディレクトリのパス(今回は / wp )を追加します。

インストールした環境や状況によって下の2通りのどちらかで書かれていると思います。

// __DIR__ の場合

//編集前
require __DIR__ . ‘/wp-blog-header.php’;

//編集後 ( /wpを追加 )
require __DIR__ . ‘/wp/wp-blog-header.php’;

// ( dirname( __FILE__ ) の場合

//編集前
require( dirname( __FILE__ ) . ‘/wp-blog-header.php’ );

//編集後 ( /wpを追加 )
require( dirname( __FILE__ ) . ‘/wp/wp-blog-header.php’ );

5.コピーした .htaccess を編集する
RewriteBase と RewriteRule の2箇所を編集します。
index.phpと.htaccessの記述を変更することで参照先を変更しています。

# 編集前

RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# ↓変更箇所
RewriteBase /wp/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# ↓変更箇所
RewriteRule . /wp/index.php [L]

# 編集後

RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# ↓変更箇所
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# ↓変更箇所
RewriteRule . /index.php [L]

6.URLが変更されたことを確認する
ドメイン直下のURLでアクセスできていたら成功です。

作業前の公開URL https://example.com/ wp
作業後の公開URL https://example.com

WordPressのパーマリンク(URLスラッグ)を英数字(記事ID)にする方法

WordPressのパーマリンク(URLスラッグ)を英数字(記事ID)にする方法

WordPressやプラグインのアップデート時にはカスタマイズは消えてしまう事があるので注意が必要です。

カスタマイズコードを記述
下記のコードを、子テーマのfunctions.phpに貼り付けてカスタマイズは完了です。

//URLスラッグの自動生成
function auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
if ( preg_match( ‘/(%[0-9a-f]{2})+/’, $slug ) ) {
$slug = utf8_uri_encode( $post_type ) . ‘-‘ . $post_ID;
}
return $slug;
}
add_filter( ‘wp_unique_post_slug’, ‘auto_post_slug’, 10, 4 );
このカスタマイズによって、投稿や固定ページのタイトルが日本語の場合に、例えばpost-123のような記事IDを含めたURLスラッグが自動生成されるようになります。

WordPress 複製時にレビュー待ちではなく下書き保存にする

WordPressで記事を複製する際に、ステータスを「レビュー待ち」ではなく「下書き」に設定するには、使用している複製機能をカスタマイズする必要があります。多くの場合、複製機能はプラグインを通じて提供されます。以下では、一般的な「Duplicate Post」プラグインを使用する例を示しますが、他のプラグインを使用している場合も同様のアプローチが可能です。

手順 1: functions.phpにコードを追加
テーマエディターにアクセス:

WordPressダッシュボードから「外観」 > 「テーマエディター」に移動します。
functions.phpを開く:

右側のファイルリストからfunctions.phpを見つけてクリックします。
以下のコードを追加:

php
コードをコピーする
function set_duplicate_post_status_to_draft( $post_status, $post ) {
if ( $post_status === ‘pending’ ) {
$post_status = ‘draft’;
}
return $post_status;
}
add_filter( ‘wp_insert_post_data’, ‘set_duplicate_post_status_to_draft’, 10, 2 );

function customize_duplicate_post_status( $new_post_status, $post ) {
return ‘draft’;
}
add_filter( ‘duplicate_post_post_status’, ‘customize_duplicate_post_status’, 10, 2 );
手順 2: プラグインの設定確認
もし「Duplicate Post」プラグインを使用している場合は、プラグインの設定を確認して、ステータスが適切に設定されていることを確認します。

プラグインの設定にアクセス:

WordPressダッシュボードから「設定」 > 「Duplicate Post」に移動します。
設定の確認:

「複製後のステータス」が「下書き」に設定されていることを確認します。
手順 3: 機能をテスト
記事を複製:

投稿一覧から任意の記事を複製します。
ステータスの確認:

複製された記事のステータスが「下書き」となっていることを確認します。
このカスタマイズにより、記事を複製する際にデフォルトでステータスが「下書き」になるように設定されます。他の複製プラグインを使用している場合は、同様のフィルターフックを探してカスタマイズを行ってください。

超初心者向けWordPress投稿の基本

1.WordPressにログイン

2.WordPressにログインし新規投稿

3.WordPressをビジュアルタブに変更し記事を貼り付け

4.タイトルを入力

5.画像を無料素材からコピーして貼り付け、またはダウンロードして記事にドラッグしアップロード

6.イラストを選択し、鉛筆ボタンを選択

7.代替テキストとして画像名を入力 画像と意味があっていればOK

8.アイキャッチとカテゴリを選択

9.すぐに公開するを選択し日付を選択し公開

コンテンツセキュリティポリシーを.htccessで対応

.htccessに以下を追記

# コンテンツセキュリティポリシー

<IfModule mod_headers.c>

  Header always set Content-Security-Policy “default-src * ‘unsafe-eval’ ‘unsafe-inline’ gap://ready file:; style-src ‘self’ ‘unsafe-inline’; media-src *; img-src * ‘self’ filesystem: data: blob:;”

</IfModule>

WordPressの手動アップデート方法(WordPressの管理画面にログインできない場合も有効)

WordPressの手動アップデート方法(Wordpressの管理画面にログインできない場合も有効)

サーバのPHPのバージョンアップなどにより、Wordpressの管理画面にログイン出来なくなることがございます
そういった場合はWordpressを手動でアップデートすることで、PHPの最新バージョンにも対応出来ますので、Wordpressの管理画面に再度ログインできるようになります

1. バックアップの取得

アップグレードの前に、データベースとサーバ上のファイルのバックアップを取っておきます。

2. WordPressのダウンロード

アップグレードするバージョンのWordPressをダウンロードします。
最新のバージョン以外にアップグレードしたい場合、WordPressのリリースページからダウンロードしてください。

3. プラグインの無効化

管理画面からプラグインを全て無効化します。
アップグレード後に有効化に戻すので、元々有効化にしていたプラグインがわかるようにメモなどをしておいてください。

4. 現在のWordPressファイルを削除

以下のフォルダ・ファイル以外のWordPressファイルを削除します。

wp-content
wp-config.php
.htaccess

5. 新しいWordPressファイルをアップロード

2でダウンロードしておいた新しいWordPressのうち、以下のフォルダ・ファイル以外をアップロードします。

wp-content
wp-config-sample.php
アップロード後、wp-content内のlanguagesフォルダをアップロードします。

6. データベースのアップグレード

ファイルのアップロード後に/wp-adminにアクセスすると、データベースの更新が必要な場合はアップグレードが促されます。(アップグレードが不要な場合もあるようです。)
必要に応じてアップグレードを実行してください。

7. プラグインの有効化

最後に無効化したプラグインを有効化に戻せばアップグレード作業完了です。
 

【参考サイト】

WordPress のアップグレード – WordPress Codex 日本語版

google広告で7500円分の無料クーポン(プロモーションコード)

google広告で7500円分の無料クーポン(プロモーションコード)

だれでも、初めてアドワーズ広告を行う人ならこの7500円分の無料クーポンがもらえるんですが、先日私も人に頼まれて久々に無料クーポンをもらおうとネット上で検索するもどこにも出てきませんでした。

なので、アドワーズ新規申し込みのサポートに電話してみたのですが、その方の案内もネット上で「グーグルアドワーズ」や「google adwords」や「アドワーズ クーポン」などで検索してみてください、そうしたらgoogleアドワーズクーポン関係の広告が検索結果に出てくると思いますというお話でした。

しびれを切らして再度googleアドワーズ新規申し込みサポートに電話したら、今度は親切な方がお客様のメールアドレスを教えてくださいと言っていただき、私のメールアドレス宛にクーポンを取得できるホームページのアドレス(URL)を送っていただきました。

Googleアドワーズのサポートの方に聞いたら、地域によってアドワーズクーポンの広告が表示されない場所もあるようなことを言っていました。

googleアドワーズの無料クーポンがもらえるページを紹介します!

https://www.google.co.jp/adwords/?channel=ha-ef

まとめ
googleアドワーズは、数千円からはじめられるのに、使い方によっては大きな可能性を秘めています。