wake-up-neo.net

So fügen Sie die Kategorie-ID zur Administrationsseite hinzu

Ich möchte die Kategorien-ID zur Admin-Seite hinzufügen. Ich nenne es für meinen functions.php: require_once('includes/categories_custom_id.php'); Der Teil des Codes:

function categoriesColumnsHeader($columns) {
        $columns['catID'] = __('ID');
        return $columns;
}
add_filter( 'manage_categories_columns', 'categoriesColumnsHeader' );
function categoriesColumnsRow($argument, $columnName, $categoryID){
        if($columnName == 'catID'){
                return $categoryID;
        }
}
add_filter( 'manage_categories_custom_column', 'categoriesColumnsRow', 10, 3 );

Aber es geht nicht. Irgendeine Idee, wie man das macht?

Danke im Voraus.

4
user24259

Die Haken für Taxonomien sind:

  • "manage_edit-${taxonomy}_columns" für den Header
  • "manage_edit-${taxonomy}_sortable_columns" um Spalten sortierbar zu machen
  • "manage_${taxonomy}_custom_column" für den Zelleninhalt

Um alle Taxonomien abzufangen, schreiben Sie:

foreach ( get_taxonomies() as $taxonomy ) {
    add_action( "manage_edit-${taxonomy}_columns",          't5_add_col' );
    add_filter( "manage_edit-${taxonomy}_sortable_columns", 't5_add_col' );
    add_filter( "manage_${taxonomy}_custom_column",         't5_show_id', 10, 3 );
}
add_action( 'admin_print_styles-edit-tags.php', 't5_tax_id_style' );

function t5_add_col( $columns )
{
    return $columns + array ( 'tax_id' => 'ID' );
}
function t5_show_id( $v, $name, $id )
{    
    return 'tax_id' === $name ? $id : $v;
}
function t5_tax_id_style()
{
    print '<style>#tax_id{width:4em}</style>';
}
4
fuxia

Sie hatten es fast in Ordnung, aber die Hakennamen, woher haben Sie die?

Die folgenden sind die richtigen. Ich füge zwei zusätzliche Funktionen hinzu, von denen eine unsere Spalte als erste hinzufügt (anstatt die letzte zu sein, ist es meiner Meinung nach sinnvoller, eine ID-Spalte zu verwenden). Und die zweite ist eine einfache CSS-Korrektur für die Spaltenbreite.

Code basiert auf diesen Fragen und Antworten: Multisite - Kategorien vor Löschen schützen?

add_filter( 'manage_edit-category_columns', 'wpse_77532_cat_edit_columns' );
add_filter( 'manage_category_custom_column', 'wpse_77532_cat_custom_columns', 10, 3 );
add_action( 'admin_head-edit-tags.php', 'wpse_77532_column_width' );

/**
 * Register the ID column
 */
function wpse_77532_cat_edit_columns( $columns )
{
    $in = array( "cat_id" => "ID" );
    $columns = wpse_77532_array_Push_after( $columns, $in, 0 );
    return $columns;
}   

/**
 * Print the ID column
 */
function wpse_77532_cat_custom_columns( $value, $name, $cat_id )
{
    if( 'cat_id' == $name ) 
        echo $cat_id;
}

/**
 * CSS to reduce the column width
 */
function wpse_77532_column_width()
{
    // Tags page, exit earlier
    if( 'category' != $_GET['taxonomy'] )
        return;

    echo '<style>.column-cat_id {width:3%}</style>';
}

/**
 * Insert an element at the beggining of the array
 */
function wpse_77532_array_Push_after( $src, $in, $pos )
{
    if ( is_int( $pos ) )
        $R = array_merge( array_slice( $src, 0, $pos + 1 ), $in, array_slice( $src, $pos + 1 ) );
    else
    {
        foreach ( $src as $k => $v )
        {
            $R[$k] = $v;
            if ( $k == $pos )
                $R       = array_merge( $R, $in );
        }
    }
    return $R;
}

Ergebnis:

id column for categories

0
brasofilo