web-dev-qa-db-ja.com

管理ページにカテゴリIDを追加する方法

管理ページにカテゴリIDを追加したい私はfunctions.phpのためにそれを呼び出します:require_once('includes/categories_custom_id.php');コードの一部:

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 );

しかし、うまくいきません。任意のアイデア、それをどのようにするのですか?

前もって感謝します。

4
user24259

分類法のフックは次のとおりです。

  • ヘッダーの"manage_edit-${taxonomy}_columns"
  • 列をソート可能にする"manage_edit-${taxonomy}_sortable_columns"
  • セルコンテンツの"manage_${taxonomy}_custom_column"

すべての分類法を捉えるには、次のように書きます。

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

あなたはそれをほぼ大丈夫でしたが、フック名は、どこからそれらを入手しましたか?

以下は正しいものです。 2つの追加関数を追加します。1つは最初の列として列を追加します(最後の列ではなく、ID列の方が理にかなっていると思います)。そして2番目は、列幅に対する単純なCSS修正です。

このQ&Aに基づくコード: マルチサイト - カテゴリを削除から保護しますか?

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;
}

結果:

id column for categories

0
brasofilo