Hinzufügen der Kategorie zur Admin-Spalte für einen benutzerdefinierten Beitragstyp?


13

Ich habe einen benutzerdefinierten Beitragstyp namens Artikel erstellt, und die Informationen auf dem Bildschirm mit der Administratorzusammenfassung sind spärlich. Ich konnte das vorgestellte Miniaturbild des Bildposts mithilfe von http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column aus einem Tutorial hinzufügen .

Ich möchte jedoch einen Überblick über die Kategorien und Unterkategorien erhalten, die diese Beiträge ihnen auf der Administrationsseite zugewiesen haben. dh eine Spalte für diesen Teil hinzufügen?

Hier ist der Code, mit dem ich die Taxonomie im Code für benutzerdefinierte Beitragstypen registriert habe


Sie könnten ein Plugin wie Codepress Admin Columns
fregante

Antworten:


18

Die Funktion register_taxonomy verfügt über einen Parameter namens show_admin_column, der das Hinzufügen einer Spalte übernimmt. Hast du das versucht?

z.B:

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

1
Bitte fügen Sie Code hinzu und erklären Sie, wie die Beantwortung der Frage beantwortet wird. Wenn Sie dem OP nur etwas fragen möchten, verwenden Sie die Kommentare.
Cybmeta

6

Nach einiger Suche habe ich mithilfe des manage_edit-${post_type}_columnsFilters und der manage_${post_type}_posts_custom_columnAktion eine Lösung gefunden .

Die Spalten werden mit dem Filter erstellt und anschließend wird die Spalte mit der Aktion gefüllt. Ich gehe davon aus, dass mit den Ideen in diesem Link http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types ganz einfach zusätzliche Spalten hinzugefügt und ausgefüllt werden können

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;
}
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.