2

編集|以外のリンクを追加しようとしています。ワードプレス管理者>ユーザー>プラグインを介してすべてのユーザーリストのリンクを削除します。これは、他のプラグインを確認するか、グーグルを検索してワードプレスプラグインを作成する最初の試みです。

関数を追加しました

function pa_user_list_pay_link( $actions, $user_object ) {
    if ( current_user_can( 'administrator', $user_object->ID ) )
        $actions['pay'] = '<a href="#">Pay</a>';
    return $actions;
}

そして適用されたフィルター

add_filter( 'user_row_actions', array( $this, 'pa_user_list_pay_link' ), 10, 2 );

しかし、このリンクが表示されておらず、編集| 削除リンクも消えます(html出力には表示されなくなります)

更新1:/wp-admin/includes/class-wp-users-list-table.phpを変更しました

この行の後

$actions = apply_filters( 'user_row_actions', $actions, $user_object );

これを追加しました

file_put_contents("test_output.txt" , count($actions));

test_output.txtは/wp-admin/に書き込まれ、0が含まれていました

私はフィルターを適用する際にいくつかの間違いをしていると思います。

更新2:私自身の質問に答えました。

4

3 に答える 3

4
function pa_user_list_pay_link( $actions, $user_object ) {
    if ( current_user_can( 'administrator', $user_object->ID ) )
        $actions['pay'] = '<a href="#">Pay</a>';
    return $actions;
}

add_filter( 'user_row_actions', 'pa_user_list_pay_link', 10, 2 );

動作します!:D

于 2012-04-05T03:47:54.610 に答える
1

編集/削除リンクが消えている場合は、関数が呼び出されていることを意味しますが、エラーが発生します。

あなたのコードを見て最初に疑問に思うの$actionsは、連想配列であるかどうかです。変更しても機能しますか

$actions['pay'] = '<a href="#">Pay</a>';

$actions[] = '<a href="#">Pay</a>';

それが機能する場合は、追加するのではなく、正しい位置に挿入することを検討できます。

テストの目的で、エラーの原因としてのアクセス許可を排除するために、ステートメントもコメントアウトしifます(つまり、他のロジックを追加しすぎる前に、編集/削除が消える理由を理解してください)。

于 2012-04-04T20:55:01.257 に答える
-1

これを行うには最善の方法があると思います。add_action('user_row_actions'、'your_function_name')を使用して、編集と削除、または新しいバッジの追加をカスタマイズできます。詳細については、私が最良の解決策を見つけたサイトにアクセスできます。この投稿 を参照してください。wordpressadminのwpユーザーリストにカスタムリンクを追加または編集します。

それがあなたを助けることを願っています。

于 2014-05-28T09:48:09.010 に答える