1

私は何日もワードプレスを開発してきましたが、add_action、add_filter、user_canのような方法が見つかりませんでした。それらが参照している関数が何であるかわかりません。さらに悪いことに、私はパラメータを知りません、今日私はユーザーリストテーブルの管理パネルに列を追加したいです、私は幸いにもチュートリアルを見つけました、ここにコードがあります

add_filter( 'manage_users_columns', 'add_user_column');
function add_user_column( $columns){
     $columns['available_stickers'] = __('Stickers Available', 'available_stickers');
     return $columns;   
}
add_filter('manage_users_custom_column',  'add_user_column_value', 10, 3);
function add_user_column_value( $value, $column_name, $user_id ){
     if ( 'available_sticker' == $column_name)
          $value = get_user_meta($user_id,"available_stickers",true);
     return $value;
}

manage_users_columns作成したとはいえ、パラメーターがどこにあるのか、なぜmanage_users_columns 他のコードを使用する必要があるのか​​わかりません。困惑していて、コードが一致しているapply_filterなど、誰かが迷路から抜け出すのを手伝ってくれる人がいます。

4

1 に答える 1

2

WordPress は、ほとんどのアクションが直接実行されるのではなく、アクションフィルターと呼ばれるものを介して実行されるため、美しく設計されています。これにより、開発者はこれらの操作のいずれかにフックすることができます。フックとは、対応するフックが使用されている場所で処理を実行することを宣言するだけで、非常にクリーンな方法で独自のロジックを WP のロジックの真ん中に絞り込むことができることを意味します。より正確に:

行動

たとえば、投稿が保存されると、WordPress は投稿を保存するだけでなく、次の行を実行して保存します。

do_action( 'save_post', $post_ID, $post );

これは、このアクション (save_post) に名前を付ける方法です。これは、次の 2 つのことを意味します。

1) 別の場所で同じコード行を使用して、まったく同じアクションを実行できます。

2)このアクション中に実行される独自のロジックを追加できます。どのように?次のように、カスタム関数をアクションに「追加」するだけです。

add_action('save_post', 'name_of_the_function_you_want_to_execute_when_post_is_saved');

したがって、「save_post」はフックの名前であり、add_actionこのフックのアクションに独自の関数を追加して、do_action実際にアクションを実行する可能性を提供します。

フィルター

フィルターはアクションに似ていますが、コマンドを実行するときに使用される代わりに、値、オブジェクト、文字列、またはテキストを処理するために使用されます (「フィルター処理」するとき)。繰り返しますが、オブジェクトや文字列を単に操作して、コア コードにアクセスする以外に方法がないようにする代わりに、WordPress は と呼ばれる特別なアクションを使用して多くの「フィルタリング」操作を巧みに実行しますapply_filters()。これにより、アクションの場合と同様に、既に適用されているフィルターに独自のフィルターを実際に追加することができます。したがって、投稿のコンテンツを表示するとき、WP は次のように実行します。

apply_filters('the_content', $post->post_content);

フックの名前はthe_content. 使用する場合:

add_filter('the_content', 'your_function_to_execute_to_further_filter_content');

your_function_to_execute_to_further_filter_content()コンテンツをパラメーターとして取り、適用したい処理の後にフィルター処理されたバージョンを返すことができるという名前の関数を作成できます。次に、この処理は、フックがこれらのフィルターを実行するために使用される WP の任意の場所に適用されthe_contentます (WP のデフォルトのもの、同じフックに追加されたプラグインフィルター、および独自のものを含む)。

ここでは、これらのフックを使用しているため、WP コア コードを台無しにすることなく WP 操作を妨害できます。実行したい追加の操作を宣言し、WP にこれを認識させます。WP は、対応するフック アクションまたはフィルターが実行されるたびに、関数を実行する礼儀を持っています。

于 2012-12-13T09:46:55.507 に答える