it-swarm.com.de

kategorie zur Admin-Spalte für einen Benutzer hinzufügen Beitragstyp?

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

Ich möchte mir jedoch einen Überblick über die Kategorien und Unterkategorien verschaffen, die diesen Posts auf der Admin-Seite zugewiesen wurden. dh Hinzufügen einer Spalte für diesen Teil?

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

11
Jonathan Beech

Die Funktion register_taxonomy hat einen Parameter namens show_admin_column, der das Hinzufügen einer Spalte behandelt. Hast du das versucht?

z.B:

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

Nach einigem Suchen habe ich eine Lösung gefunden, die den manage_edit-${post_type}_columns-Filter und die manage_${post_type}_posts_custom_column-Aktion verwendet.

Die Spalten werden mit dem Filter erstellt, und dann wird die Spalte mit der Aktion gefüllt. Ich gehe davon aus, dass mithilfe der Ideen in diesem Link ganz einfach zusätzliche Spalten hinzugefügt und ausgefüllt werden können. 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;
}
}
6
Jonathan Beech