カスタム列un users.phpを追加しようとしていますが、空のままです。
私のテーマのfunctions.phpファイルに次のコードでユーザー管理ページに列を追加しました。
function add_user_test_column( $columns ) {
$columns['test1'] = 'Test';
return $columns;
}
add_filter( 'manage_users_columns', 'add_user_test_column' );
このコードを使用して列に何かを追加しようとしましたが、列が空のままです。
function add_test_column_data($v = '', $column_name, $user_id ) {
if( 'test1' == $column_name ) {
return 'test'.$column_name.$user_id;
}
}
add_filter( 'manage_users_custom_column', 'add_test_column_data', 10,3);
このようにエコーへの戻りを変更すると、関数が起動していることがわかります。
function add_test_column_data($v = '', $column_name, $user_id ) {
if( 'test1' == $column_name ) {
echo 'test'.$column_name.$user_id;
}
}
ユーザーテーブルの上部に「テストテストテストテストテストテスト」がエコー表示されているのがわかります。
ご覧のとおり、関数に渡された変数は考慮されていません。また、優先度(add_filter関数の3番目の引数)を10から1に減らしても効果はありません。
だから私の質問は次のとおりです。
この関数からの戻りが機能しないのはなぜですか?
関数に渡された変数が考慮されないのはなぜですか?
これをデバッグするためにどこを見ればいいですか?
私はこれがVanillaのインストールではないことを付け加えるべきです。私はたくさんの拡張機能と10万人以上のユーザーがいるwordpress 3.4.2の複雑なサイトを引き継いだ。 (そして私は以前Wordpressを使ったことがない...)。
ご提案いただきありがとうございます。
キース
私はWP 3.2.1でも同じ問題を抱えています。
プラグイン(User Access Manager)がmanage_users_custom_column
filterも呼び出すため、フィルターの競合がありました。
優先順位を変更して問題を解決しました。
add_filter( 'manage_users_custom_column', 'custom_user_column_value', 15, 3 );
それが役立つことを願っています:)