it-swarm.com.de

zeige cimy user Felder in users.php mit manage_users_columns an

Ich versuche, meinen Themes functions.php Code hinzuzufügen, um Felder anzuzeigen, die mit dem Cimy-Benutzer-Zusatzfeld-Plugin im Dashboard users.php erstellt wurden. Ich weiß, dass ich manage_users_columns verwenden muss, aber darüber hinaus stecke ich fest. Kennt jemand das Plugin so gut, dass ich die richtigen Felder anzeigen kann?

2
John Chandler

Ich habe mich daran versucht, das herauszufinden. Hier ist der Code als Referenz:

function theme_column_userfield( $defaults ) {  
      $defaults['theme-usercolumn-userfield'] = __('fieldname', 'user-column');  
      return $defaults;  
}

function theme_custom_column_userfield($value, $column_name, $id) {  
      if( $column_name == 'theme-usercolumn-userfield' ) {  
            return get_cimyFieldValue($id, 'fieldname');  
      }  
}

add_action('manage_users_custom_column', 'theme_custom_column_userfield', 15, 3);
add_filter('manage_users_columns', 'theme_column_userfield', 15, 1);
1
John Chandler

Ein paar Gedanken, die Ihnen oder anderen beim Lesen helfen könnten ...

FWIW, der Prioritätsparameter hat keine Auswirkung, es sei denn, Sie haben mehrere Funktionen, die Sie an den Hook anhängen. Also, 15 oder 1 oder 9999 ist irrelevant. Wenn Sie vielleicht denken, dass die Priorität etwas mit der Spaltenreihenfolge zu tun hat, ist dies nicht der Fall.

Sie können auch die Funktion 'theme_column_userfield' mit add_action an den Hook 'manage_users_columns' anhängen. Dies funktioniert in beiden Fällen genauso. dh

add_action('manage_users_columns', 'theme_column_userfield');

funktioniert genauso.

Schließlich enthält der Codeblock keine Art von Bestellung. Auf diese Weise wird die Spalte auf der rechten Seite der Tabelle hinzugefügt. Wenn Sie die Spalte irgendwo einfügen müssen, müssen Sie ein wenig oder viel array_slice und array_merge verwenden, je nachdem, wie einfach/komplex/wiederverwendbar Sie sein müssen.

Zum Beispiel, wenn Sie dies verwendet haben ...

    function add_new_column($column_headers) {
        // slice off the checkbox column
        $cb_col = array_slice($column_headers, 0, 1);

        // create the new column (you could add in translation if you want it)
        $new_col    = array('new_column_name' => 'New User Column');

        // stick it all back together
        $column_headers = array_merge($cb_col, $new_col, $column_headers);

        return $column_headers;
    }
    add_action('manage_users_columns', 'add_new_column');

    function output_new_column($value, $column_name, $id) {
        if($column_name == 'new_column_name') {
            // add some code here to print out whatever value you want in whatever style you're after
        }
    }
    add_action('manage_users_custom_column', 'output_new_column', 1, 3);

... wird die 'Neue Benutzerspalte' direkt nach dem Kontrollkästchen in der Benutzerliste angezeigt, gefolgt von allen anderen Standardspalten.

1
mattaresmart