次のスクリーンショットのように、[Plugins]ページのプラグインの下にカスタムメッセージを追加しようとしています。
どのアクションまたはフィルタを使用すればよいですかありがとうございました!
コーデックスやグーグルを検索すると、いくつかのWordPressフックのリストを見つけることができますが、いつどこでどのようにトリガーされるのかわからなければ役に立ちません。
WordPressをコーディングしている間、「どのフックを使うべきですか?」という質問があります。よくあることですが、WordPressのすべてのフックのリストが存在する場合は、回答には役立ちません。存在します。
そのため、そのような質問があるときに最初にすべきことは、WordPressコアコードを見ることです。
ブラウザのアドレスバーを見ると、プラグインのリストページを見ているときに、http://example.com/wp-admin/plugins.php
が表示されます。
それで、ファイル/wp-admin/plugins.php
を開いてください。
あなたがそれが混乱だと思うなら、私はあなたに同意します。しかし、コードを理解しないようにすると、出力は次の行で行われていることがわかります。$wp_list_table->display();
だから、メソッドdisplay
を持つオブジェクト$wp_list_table
があります。
あなたがWordPressの経験があるなら、あなたはすぐにこのオブジェクトを探す場所を理解するでしょう。そうでない場合は、ファイル内の$wp_list_table
が定義されている場所を確認してください。あなたはこの行を見つけるでしょう:
$wp_list_table = _get_list_table('WP_Plugins_List_Table');
'WP_Plugins_List_Table'
という名前のクラスが存在していると思います。
ちょっと経験を重ねると、このクラスはWP_List_Table
を拡張するWordPressのクラスの1つであることがわかりますが、それがわからない場合は、wp-admin/includes
フォルダー内のファイルを見て、という名前のファイルを探してください。クラスに似た方法で、あるいはテキストエディタを使って'class WP_Plugins_List_Table'
フォルダ内のすべてのphpファイルで行wp-admin
の検索を開始します。
どちらの場合も、クラスが定義されているファイルを細かく指定できます。それは wp-admin/includes/class-wp-plugins-list-table.php
です。
そのファイルを開いてコードを見てください。あなたは single_row
という名前のメソッドを見つけるでしょう。そして、クラスコードがほとんど読めなくても、このメソッドは単数形のプラグインを表示するために使われていると推測できます。行。
このメソッドの最後の2行は以下のとおりです。
do_action( 'after_plugin_row', $plugin_file, $plugin_data, $status );
do_action( "after_plugin_row_$plugin_file", $plugin_file, $plugin_data, $status );
それで、あなたはあなたが探しているフックを見つけます:
最初のプラグインはすべてのプラグインの行に対して実行され、2番目のプラグインは動的フックなのでプラグインごとに異なります。
したがって、特定のプラグイン行の後に何かを出力したい場合は、"after_plugin_row_$plugin_file"
フックを使用する必要があります。ここで、$plugin_file
は、plugin_basename( __FILE__ );
を使用してメインプラグインファイル内で取得できます。
あなたが得ることができるものの例:
上の画像の出力に使用されるプラグインコードは次のとおりです。
/**
* Plugin Name: Code is Best Documentation
* Description: Look at me, I'm the proof.
*/
$path = plugin_basename( __FILE__ );
add_action("after_plugin_row_{$path}", function( $plugin_file, $plugin_data, $status ) {
echo '<tr class="active"><td> </td><td colspan="2">
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Cat_poster_2.jpg/297px-Cat_poster_2.jpg" alt="Some Cats" />
</td></tr>';
}, 10, 3 );