web-dev-qa-db-ja.com

ハートビートAPIが無効にならない

私のテストから(WordPressに非常に新しいので、これらのテストがあまり良くない場合は私と一緒に簡単に行ってください) !)は表示されません。

SiteGroundでホストされているサイトで、誰も仕事をしていなかったようなCPU秒を食べていました。

私はこれをなんとかしてadmin-ajax.phpファイルを呼び出すHeartbeat APIに任せています。

admin-ajax.phpに関する小さな質問があれば教えてください。このファイルは、誰かが実際にコントロールパネルにログインしていて、サイトにアクセスしているだけのような他の状況ではない場合にのみ起動されると私は思っていますか?

そのために、インターネット上に以下に示すコードを見つけました。

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

これは、開始の<?タグの後の最上部にあるテーマのfunctions.phpファイルに入ると読みました。

そこに配置しましたが、Heartbeat APIがまだ実行されていることは確かです。

あるユーザーが投稿を編集していて、別のユーザーがそれを編集しようとすると、他の誰かが既にその投稿を編集していることを警告するメッセージが表示される場合、Heartbeat APIが原因であると私は思っていますか?

もしそうなら、このコードを配置し、2人の完全に異なるブラウザで2人の完全に異なるユーザーを使用しても、これらのメッセージが引き続き表示されます。

私はこれをlocalhostマシンでテストしていますが、現在ライブサイトを台無しにしたくないので、これは完全にバニラインストールWordPress 4.8です。 1プラグインやカスタムテーマは一切使用されていません。 2017年の標準テーマです。

だから私の質問は:

1 – Heartbeat APIをオフにすることも可能ですか、それとも実際にはオフにできないという既知の問題ですか?

そして

2 –それを確実にオフにできる場合、何が問題ですか?

これで何か助けてくれてありがとう。

ご多幸を祈る、

マーク

1
Mark Bowen

このファイルは、誰かが実際にコントロールパネルにログインした場合にのみ起動され、サイトにアクセスしたばかりのユーザーのような他の状況では起動されないという私の考えでは正しいですか?

いいえ、Ajax APIは、フロントエンドユーザーや非認証ユーザーのリクエストを含め、任意のリクエストに使用されます。

あるユーザーが投稿を編集していて、別のユーザーがそれを編集しようとすると、他の誰かが既にその投稿を編集していることを警告するメッセージが表示される場合、Heartbeat APIが原因であると私は思っていますか?

ハートビートAPIはそのような機能のために実装されましたが、それは任意のものが上で実行できるより一般的なチャネルです。

Heartbeat APIをオフにすることも可能ですか、それとも実際にはオフにできないという既知の問題ですか?

私が覚えている限り、これを無効にするのは非常に難しく、クリーンで互換性のある方法で行うことができます。また、いくつかのアプローチを経たため、オンラインの関連スニペットの多くは古く、無関係です。現時点でそれをオフにする健全な方法がある場合—私はそれを知りません。

それが間違いなくオフにできる場合、私は何を間違っていますか?

何か悪いことをしたかどうかはわかりません。これについては、ホスティングサポートで詳しく説明します。何かがそれを台無しにしているかもしれません、あなたのニーズ(管理者にログインしている多くのユーザーのような)はあなたの計画よりも大きいかもしれません。事例として私は長い間SiteGroundユーザーであり、Heartbeat APIの問題は一度もありませんでした。

2
Rarst