1

たとえば、新しい投稿を作成するときに投稿の公開ボタンをクリックしたときに、何らかのアクションを実行したいとします。例として、投稿を作成するたびに電子メールが自動的に誰かに送信されるようにしたいとします。

問題は、どのコア機能にフックできるかを知る最善の方法は何か、つまり電子メールを実行することです。

それとも、WordPress API メモリに厳密に依存していると思いますか? たとえば、このアクションは投稿の作成に関係しているため、プラグイン/アクション コーデックス ページでその単語を含む関数名を検索しpost、スキャンして wp_insert_post などのアイテムを見つける必要があると考えることができます。 wp_update_post、save_post、post_X、X_post など? これは標準ですか?

この特定のケースでは、おそらく wp_insert_post または save_post のいずれかになります。しかし、私の質問は一般的なものです。これは問題にアプローチする正しい方法ですか?

または..現在または以前のリクエストでどの(フック可能な)コア関数が実行されたかを知るための別のまたはより効率的な方法(おそらくプラグイン)はありますか?このようにして、関連するすべての関数の決定的なリストを取得して、選択したり、興味のある現在の要求を直接処理しているものを読んだりすることができます。もう推測作業は必要ありません...

ヘッダーのリダイレクトのため、現在のリクエストはそれをカットしない可能性があることに注意してください。前のリクエストですべてのフック可能な関数のリストを取得できる必要があります。(リダイレクト コードが検出される前に実行されたもの)。

4

1 に答える 1

2

どのフックが利用可能かを知る方法は簡単です。ローカルの Apache/MySQL を使用して WordPress のコピーをインストールし、PhpStorm + Zend Debuggerを使用してコードをトレースし、どのフックが起動するかを確認します。そこから、ニーズのコンテキストに基づいて最適なフックを決定するだけです。通常、潜在的なフックがいくつかある場合、どれを使用するかは明らかです。

フックのリストをインストルメント化するなどの他のアプローチがあり、おそらくデバッグ バー (へのアドオン) を使用してその情報を取得する方法がありますが、私の経験では、これらのアプローチはすべて暗闇の中で光を探して手探りのようなものです。スイッチ。また、デバッガーを使用すると、照明のスイッチをオンにするようなもので、照明のスイッチがどこにあるかを無駄な労力なしで正確に確認できます。

于 2013-01-18T20:49:49.927 に答える