aggiungere la categoria alla colonna admin per un tipo di post personalizzato?


13

Ho creato un tipo di post personalizzato chiamato articolo e le informazioni fornite nella schermata di riepilogo dell'amministratore sono scarse. Sono stato in grado di aggiungere l'immagine in miniatura post immagine in primo piano utilizzando il http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column da un tutorial.

Tuttavia, vorrei essere in grado di ottenere una panoramica delle categorie e sottocategorie che questi post hanno assegnato loro sulla pagina di amministrazione. cioè aggiungendo una colonna per quella parte?

Ecco il codice che ho usato per registrare la tassonomia nel codice dei tipi di posta personalizzati


È possibile utilizzare un plug-in come Codepress Admin Columns
fregante

Risposte:


18

La funzione register_taxonomy ha un parametro chiamato show_admin_columnche gestirà l'aggiunta di una colonna. Ci hai provato?

per esempio:

register_taxonomy(
    'my_tax, 
    'post_type', 
    array(
        'label'             => 'My Taxonomy',
        'show_admin_column' => true,
        )
);

1
Per favore, aggiungi il codice e spiega come usarlo risponde alla domanda. Se vuoi solo chiedere qualcosa all'OP, usa i commenti.
cybmeta,

6

Dopo alcune ricerche, ho trovato una soluzione usando il manage_edit-${post_type}_columnsfiltro e l' manage_${post_type}_posts_custom_columnazione.

Le colonne vengono create con il filtro e quindi la colonna viene popolata con l'azione. Suppongo che ulteriori colonne potrebbero essere aggiunte e popolate abbastanza facilmente usando le idee in questo link http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types

add_filter('manage_edit-article_columns', 'my_columns');
function my_columns($columns) {
    $columns['article_category'] = 'Category';
return $columns;
}

add_action( 'manage_article_posts_custom_column', 'my_manage_article_columns', 10, 2 );

function my_manage_article_columns( $column, $post_id ) {
global $post;

switch( $column ) {

    /* If displaying the 'article_category' column. */
    case 'article_category' :

        /* Get the genres for the post. */
        $terms = get_the_terms( $post_id, 'article_category' );

        /* If terms were found. */
        if ( !empty( $terms ) ) {

            $out = array();

            /* Loop through each term, linking to the 'edit posts' page for the specific term. */
            foreach ( $terms as $term ) {
                $out[] = sprintf( '<a href="%s">%s</a>',
                    esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'article_category' => $term->slug ), 'edit.php' ) ),
                    esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'article_category', 'display' ) )
                );
            }

            /* Join the terms, separating them with a comma. */
            echo join( ', ', $out );
        }

        /* If no terms were found, output a default message. */
        else {
            _e( 'No Articles' );
        }

        break;

    /* Just break out of the switch statement for everything else. */
    default :
        break;
}
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.