WordPress Heartbeat API の管理方法

公開: 2023-01-31

WordPress Heartbeat API は、ほぼ 10 年前から存在しています。 WordPress ダッシュボードとホスト サーバー間のシームレスなリアルタイム通信を提供しました。 WordPress コアに組み込まれている Heartbeat API は、Web サイトの管理エクスペリエンスを大幅に向上させる強力な機能を提供します。

ただし、このパワーには代償が伴います。 通信をスムーズに実行するために必要なサーバー リソースの数です。 リソースを集中的に使用する Web サイトを実行したり、ホスティング プロバイダーにメモリと CPU 時間に厳しい制限を課したりすると、Heartbeat API が役割を果たす可能性のあるパフォーマンスが著しく低下する可能性があります。

このガイドでは、WordPress Heartbeat API の可能性と、WordPress エコシステムにおけるその役割を明らかにします。 Heartbeat API の仕組みを学びます。 また、WordPress サイトでのアクティビティを制限することを検討する必要がある理由についても説明します. これにより、ホスティング プランをアップグレードしなくてもパフォーマンスが向上します。

WordPress ハートビート API とは?

WordPress Heartbeat API は、サーバーと WordPress ダッシュボード間のリアルタイム通信を可能にする WordPress コアに組み込まれたインターフェースです。 Heartbeat API は、2013 年の WordPress 3.6 のリリースで初めて導入されました。 これにより、コンテンツ管理やその他の Web サイト管理の重要な領域が大幅に改善されました。

WordPress ハートビート API

Heartbeat API が重要な理由

WordPress ダッシュボードは、主にクライアント側のアプリケーションです。 これは、アクションの大部分がユーザーのブラウザーで行われることを意味します。 フロントエンド アプリケーションとして、WordPress の管理領域は、Web サイトのコンテンツやその他の重要な情報が保存されている WordPress データベースに直接アクセスできません。

正しく機能するには、WordPress ダッシュボードがサーバーと通信してデータを送受信できる必要があります。 WordPress Heartbeat API などのアプリケーション プログラミング インターフェース (API) を使用すると、ページ全体をリロードして新しい情報を表示することなく、リアルタイムで更新を受け取ることができます。

シームレスなユーザー エクスペリエンスを提供するために、WordPress ダッシュボードは、ログインして Web サイトで作業している WordPress ユーザーの更新の遅延をなくすために、バックグラウンドで頻繁にサーバーにリクエストを送信します。 Heartbeat API は、15 ~ 120 秒ごとにサーバーと API 呼び出しに要求を送信します。

3 つの主な機能 WordPress Heartbeat API の力

WordPress Heartbeat API は、Web サイトの管理をより簡単かつ便利にする 3 つの主要な機能を強化します。 これらの機能は、自動保存、コンテンツ ロック、およびリアルタイムのダッシュボード通知です。 これらは、複数のユーザーがログインして同時にアクティブになっているコミュニティまたは共同編集された Web サイトにとって特に重要です。

1. 自動保存とリビジョン

自動保存とリビジョンは、WordPress Heartbeat API が提供する重要な機能の 1 つです。 ユーザーがブロック エディターで作業しているときはいつでも、WordPress は 60 秒ごとにコンテンツの自動保存を実行します。 これにより、変更が保存されないままになることはありません。 毎分サーバーにリクエストを送信することにより、WordPress Heartbeat API は投稿またはページの作業コピーをデータベースに保存し、新しい自動保存が実行されるまでそこに保存されます。

Heartbeat API による WordPress の自動保存は非常に便利です。 ブラウザのクラッシュや接続の問題が発生した場合のデータ損失を防ぐことができます。 自動保存は、ユーザーが作成したリビジョンを置き換えず、データベースに蓄積しません。

2. コンテンツのロック

コンテンツのロックは、WordPress Heartbeat API が有効にするもう 1 つの機能で、WordPress Web サイトの所有者により良い編集エクスペリエンスを提供します。 投稿またはページが現在編集中の場合、WordPress はそれをロックして、他のユーザーが変更できないようにします。 WordPress Heartbeat API は、15 秒ごとにサーバーにリクエストを送信します。 ロックされたコンテンツを別のユーザーが編集のために開くと、通知が表示されます。

3. リアルタイムのダッシュボード通知

WordPress Heartbeat API は、プラグインによって送信されるものを含め、リアルタイムのダッシュボード通知を強化します。 Heartbeat API が提供するクライアント サーバー通信の信頼性により、何千人もの WordPress プラグイン開発者がアプリケーションに統合するようになりました。

ウェブサイトの管理エリアでの WordPress Heartbeat API 呼び出しのデフォルトの間隔は 15 秒です。 API 機能を使用したいプラグイン開発者は、クライアント アプリケーションとサーバー間でデータを交換するためのカスタム間隔を構成できます。

WordPress ハートビート API はどのように機能しますか?

WordPress Heartbeat API は AJAX (Asynchronous JavaScript And XML) を使用して、管理ダッシュボードからサーバーと通信します。 アプリケーション プログラミング インターフェイスはデータを収集し、jQuery イベントと呼ばれるものを介して送信します。 admin-ajax ハンドラーがデータを受け取り、サーバー側で処理した後、JSON 形式で応答を準備して返します。

WordPress ダッシュボードが読み込まれると、クライアント側のコードは、タスクに応じて 15 ~ 120 秒ごとに実行する間隔 (チックとも呼ばれます) を設定します。 Heartbeat API コードは、クライアント側でデータを収集し、それをサーバーに通信して更新を受信する役割を担っています。

Heartbeat API 呼び出しの総数は、Web サイトで同時に作業しているアクティブなユーザーの数によって異なります。 これは、読み込まれた WordPress ダッシュボード インスタンスの数と同じです。 複数のブラウザ ウィンドウで WordPress 管理領域を開くと、複数のユーザーが Web サイトのバックエンドにログインして同時にタスクを実行する場合と同じ数の Heartbeat API 呼び出しが作成されます。

WordPress Heartbeat API 呼び出しを制限する理由

WordPress Heartbeat API 呼び出しを制限すると、特に CPU 時間に関しては、割り当てられたサーバー リソースのプールが非常に限られている WordPress サイトを高速化するのに役立ちます。 Heartbeat API が Web サイトのパフォーマンス低下の主な原因になることはほとんどありませんが、考慮に入れる必要があることは間違いありません。

Heartbeat API がサーバーと通信するたびに、wp-admin の admin-ajax.php ファイルに対して POST HTTP 要求が行われます。 ハートビート API 呼び出しは 15 ~ 120 秒ごとにサーバーに送信され、複数のアクティブな管理者ユーザーがいるとその数が増えるため、API がサーバーに過負荷をかけ、CPU とシステム メモリの使用率が高くなる可能性があります。

一部の WordPress Web サイト所有者は、Heartbeat API アクティビティを進行中の DDOS 攻撃と間違えることさえあります。 WordPress Heartbeat API リクエストはキャッシュできないため、呼び出しごとに一定量のサーバー リソースが使用されます。 サーバーがそのリソースをアクティブに使用して API 呼び出しを処理している場合、顧客は Web サイトを閲覧するときにコンテンツのレンダリングに遅延が発生する可能性があります。

Heartbeat API を無効にする前に考慮すべき 3 つのこと

Heartbeat API を完全に無効にすることは、ほとんど良い考えではありません。 WordPress ダッシュボードは、ほとんどの場合、リアルタイムでサーバーと通信する機能を失います。 Heartbeat API を無効にすると、通知を受け取ることができなくなります。 また、コンテンツのロック、自動保存、リビジョンを利用できなくなります。

Heartbeat API を無効にするか、そのアクティビティを制限する前に考慮すべき 3 つの重要な点は次のとおりです。

  • ホスティング。 Web サイトに割り当てられている CPU 時間とシステム メモリの量を確認します。 Web サイトで作成できるプロセスの数に制限はありますか?
  • Web サイトの管理に費やす時間。 管理とコンテンツの公開にどのくらいの時間を費やしていますか? WordPress ダッシュボードとバックエンド インターフェイスで同時に作業することが多いアクティブ ユーザーは何人ですか?
  • 受信した毎日のトラフィック。 あなたのWordPress Webサイトには、毎日何人の訪問者がいますか? サーバーの負荷を軽減するためのキャッシュ ソリューションはありますか?

ウェブサイトの種類と現在のホスティング設定に応じて、WordPress Heartbeat API 呼び出しの数を制限すると、全体的なパフォーマンスにさまざまな影響があります. 複数のユーザーが定期的なメンテナンスを実行し、コンテンツを投稿する、リソース集約型の WordPress サイトを実行している場合、Heartbeat API 呼び出しの数を減らすことは非常に有益です。 また、増加するトラフィック量に対応するためにホスティング コストを増加させないようにすることもできます。

プラグインで WordPress Heartbeat API を管理する方法

WordPress Heartbeat API リクエストを管理する最も簡単な方法は、このために設計された WordPress プラグインを使用することです。 利用できるさまざまなソリューションがいくつかあります。 WP Rocket によって開発された Heartbeat Control は、最も人気のある最高のものの 1 つです。

ハートビート制御

WordPress ダッシュボードから Heartbeat Control プラグインをインストールして有効にします。 [設定] > [ハートビート コントロール]に移動して、プラグインの構成を開きます。 ハートビート コントロールを使用すると、次のオプションを使用して、Web サイトのフロントエンド、WordPress ダッシュボード、およびブロック エディターでハートビート API のアクティビティを管理できます。

  • ハートビートを許可します。 このオプションを有効にすると、プラグインはハートビート API 呼び出しを制限しません。
  • ハートビートを無効にします。 Heartbeat を無効にすると、WordPress Web サイトの選択した領域ですべての API 呼び出しがブロックされます。
  • ハートビートを変更します。 WordPress Heartbeat API 呼び出しのカスタム間隔を 15 秒から 300 秒の範囲で設定できます。
ハートビート制御

ほとんどの場合、WordPress ハートビート API 呼び出しの間隔を長く設定することが最善の方法です。 たとえば、Web サイトの 3 つの領域すべてで API 呼び出しの数を 5 分ごとに 1 回に制限すると、Heartbeat API を完全に無効にするのと同じ効果が全体的なパフォーマンスにもたらされます。

ブロック エディターでハートビート API アクティビティを制限すると、編集中のコンテンツへの変更が失われないように、より頻繁にリビジョンを保存する必要がある場合があることに注意してください。 自動保存に依存せず、コンテンツのロックも必要ない場合は、Gutenberg で WordPress Heartbeat API を完全に無効にすることができます。

プラグインなしで WordPress Heartbeat API 呼び出しを制限する方法

WordPress フックを使用すると、プラグインなしで WordPress Heartbeat API 呼び出しを制限できます。 Web サイトのアクティブなテーマの functions.php ファイルに数行のコードを追加すると、Heartbeat API を無効にしたり、API 呼び出しのカスタム間隔を指定したりできます。

WordPress には組み込みのテーマ エディターが付属しており、管理ダッシュボードから functions.php を変更できます。 ただし、iThemes Security Pro などのほとんどの WordPress セキュリティ プラグインは、この機能を無効にして、Web サイトが侵害された場合に Web サイトを保護します。

ホスティング コントロール パネルが提供するファイル マネージャー インターフェイスを使用するか、FTP または SSH 経由で Web サイト ファイルに接続して、ファイルを編集できます。 Kadence WP が選択した WordPress ブロック テーマである場合、WordPress コンテンツ ディレクトリ内の Kadence フォルダーに functions.php ファイルがあります。

functions.php ファイルに追加されたコードは、テーマの次の更新によって上書きされる可能性が高いことに注意してください。 したがって、プラグインを使用して WordPress Heartbeat API を管理する方がよい場合があります。 子テーマを使用している場合、その functions.php ファイルを変更しても、親テーマが更新されたときに上書きされるリスクはありません。

最初にWordPressサイトのバックアップを保存することを忘れないでください

バックアップの保存は、Web サイト管理の重要な部分です。 これにより、エラーから回復し、緊急時に Web サイトを迅速に復元できます。 WordPress のコア ファイルやテーマ ファイルを編集する前に、必ず Web サイトをバックアップしてください。

WordPress バックアップ プラグインを使用すると、強力なバックアップ戦略を作成するのに役立ちます。 必要なときにいつでも、Web サイトの作業コピーを作成できます。 Web サイトのバックアップをリモート ロケーションに保存し、カスタム バックアップ スケジュールと BackupBuddy によるワンクリック リストアを活用します。

ハートビート API を無効にする

以下のアクションを追加すると、Heartbeat API を停止して、すべての API 呼び出しを効果的に無効にすることができます。 これを実現するには、以下のコード スニペットを functions.php の最後に追加します。

function wb_stop_heartbeat() {
 wp_deregister_script('heartbeat');
}
add_action('init', 'wb_stop_heartbeat', 1);

同じ方法で、WordPress Heartbeat API の特定の機能を無効にすることができます。

function disable_autosave() {
 wp_deregister_script('autosave');
}
add_action('admin_init', 'disable_autosave');

ハートビート API 呼び出しのカスタム間隔を構成する

WordPress Heartbeat API 呼び出しを制限するには、API 要求のカスタム間隔を構成するフィルターを指定できます。 次のコード スニペットは、Heartbeat API 呼び出しを 1 分間に 1 つのリクエストに制限します。

function wb_set_heartbeat_time_interval($settings) {
 $settings['interval']=60;
 return $settings;
}
add_filter('heartbeat_settings', 'wb_set_heartbeat_time_interval');

WordPress 自動保存のカスタム間隔を構成する

WordPress では、AUTOSAVE_INTERVAL 定数を再定義することで、自動保存のカスタム間隔を設定できます。 他の定数と同様に、メインの WordPress 構成ファイルに次の行を追加することで、新しい値を割り当てることができます。

define('AUTOSAVE_INTERVAL', 300);

WordPress の自動保存を完全に無効にするために、1 時間である 3600 などの大きな値を間隔に割り当てることができます。 wp-config.php で設定された WordPress 定数は、WordPress の更新中に変更されません。 後で再定義する必要はありません。

まとめ

WordPress のハートビート API は、WordPress コアに組み込まれている重要な機能の 1 つで、AJAX 呼び出しを使用したリアルタイムのクライアント/サーバー通信を可能にします。 アプリケーション プログラミング インターフェイスにより、WordPress はサーバーと WordPress ダッシュボードの間でデータを交換して、より優れた管理エクスペリエンスを提供できます。

Heartbeat API は、1 分間に数回、サーバーに要求を送信します。 これにより、サーバーの負荷が増加し、パフォーマンスが低下する可能性があります。 プラグインを使用するか、WordPress フックを追加するか、WordPress 定数を定義することで、Heartbeat API 呼び出しを制限できます。

安定した Web サイトのパフォーマンスは不可欠ですが、セキュリティも重要です。 iThemes は、WordPress Web サイトのすべての領域を保護するのに役立つため、何があってもビジネスをオンラインに保つことができます。 iThemes Security Pro を使用して、多要素認証、ファイル変更の監視、脆弱性スキャンなど、オンライン プレゼンスを保護する方法を発見してください。