it-swarm.com.de

anzeigen benutzerdefinierter Taxonomien mit benutzerdefiniertem Beitragstyp

wir haben einen benutzerdefinierten Beitragstyp unter der Überschrift "Benutzerdefinierter Beitragstyp" zusammen mit zwei benutzerdefinierten Taxonomien eingerichtet. (Der folgende Code wurde zu unserer functions.php-Seite hinzugefügt :) add_action ('init', 'create_seminar_post_type');

funktion create_seminar_post_type () {register_post_type ('seminars',

        array(
                'labels'=> array(
                        'name' => 'Seminars',
                        'singular_name' => 'Seminar',
                        'add_new' => 'Add New Seminar',
                        'add_new_item' => 'Add New Seminar',
                        'edit' => 'Edit Seminars',
                        'edit_item' => 'Edit Seminar',
                        'new_item' => 'New Seminar',
                        'view' => 'View Seminar',
                        'view_item' => 'View Seminar',
                        'search_items' => 'Search Seminars',
                        'not_found' => 'No Seminars found',
                        'not_found_in_trash' => 'No Seminars found in Trash',
                        'parent' => 'Parent Seminar',
                ),
                'supports' => array('title', 'editor', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'thumbnail', 'author', 'page-attributes'),
                'public' =>true,
                'taxonomies' => array('post_tag', 'category')
                )
    );
    register_taxonomy ('trt', 'seminars', array(
    'labels' =>array(
                'name' =>'Total Running Time',
                'singular_name' => 'Total Running Time',
                'search_items' => 'Search Total Running Time',
                'popular_items' => 'Popular Total Running Times',
                'all_items' => 'All Running Times',
                'parent_item' => 'Parent Running Time',
                'edit_item' => 'Edit Running Time',
                'update_item' => 'Update Running Time',
                'add_new_item' => 'Add New Running Time',
                'new_item_name' => 'New Running Time Name'
    ),
                'hierarchical' => true, 'label' => 'Total Running Time'));
    register_taxonomy ('discs-in-set', 'seminars', array(
    'labels' =>array(
                'name' =>'# of Discs in Set',
                'singular_name' => 'Total Discs in Set',
                'search_items' => 'Search Discs in Set',
                'popular_items' => 'Popular Discs in Set',
                'all_items' => 'All Discs in Set',
                'parent_item' => 'Parent Discs in Set',
                'edit_item' => 'Edit Discs in Set',
                'update_item' => 'Update Discs in Set',
                'add_new_item' => 'Add New Discs in Set',
                'new_item_name' => 'New Discs in Set'
    ),
    'hierarchical' => false,
    'public' => true,
    'show_ui' => true,
    'query_var' => 'discs-in-set',
    'show_tagcloud' => true,
    ));

}

und hier ist der Code, der mit der Schleife auf unserer Single-Seminar-Seite hinzugefügt wurde (abgeleitet von der single.php-Seite):

<?php $loop = new WP_Query( array( 'post_type' => 'seminars', 'posts_per_page' => 10 ) ); ?>
        <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
        <?php the_title( '<h2 class="entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>' ); ?>

was wir für jedes einzelne Seminar gezeigt haben möchten, sind die Seminarinformationen sowie die benutzerdefinierten Taxonomieinformationen für Laufzeit und Datenträger im Set. Es werden jedoch nur der Seminarbeitrag und die dazugehörigen Kategorien und Tags angezeigt. Was soll ich tun, damit das funktioniert?

auf ähnliche Weise werden beim Anzeigen der Seminarliste im Dashboard alle Listen mit Spalten für Titel, Autor, Kategorien, Tags, Kommentare und Datum angezeigt. Es wäre schön, die benutzerdefinierten Taxonomien der Einfachheit halber in diese Auflistung aufzunehmen. Kann dies mit benutzerdefinierten Taxonomien durchgeführt werden? Oder gibt es einen direkteren Modus dafür? Jede Hilfe/Einsicht wird sehr geschätzt.

  • don
1
don de lion

Für das Dashboard-Beitragsauflistungsbit ....

http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column

    // ADDS EXTRA INFO TO ADMIN MENU FOR PRODUCT POST TYPE
add_filter("manage_edit-ve_products_columns", "voodoo_prod_edit_columns");
add_action("manage_posts_custom_column", "voodoo_prod_custom_columns");

function voodoo_prod_edit_columns( $columns ) {

    // Add the extra column for product categories instead of rebuilding the whole array
    $columns['prod_cat'] = "Product Category";
    $columns['description'] = "Excerpt";

    return $columns;
}

function voodoo_prod_custom_columns( $column ) {
    global $post;
    switch( $column ) {
        case "description":
            the_excerpt();
        break;
        case "prod_cat":
            echo get_the_term_list( $post->ID, 'product_category', '', ', ', '' );
        break;
    }
}

Ich benutze diese Option, um meinem benutzerdefinierten Post-Typ "ve_products" zwei Spalten hinzuzufügen. In der Beschreibungsspalte wird der Auszug angezeigt, in prod_cat wird meine benutzerdefinierte Taxonomie (product_category) angezeigt. Etwas los werden:

$columns['description'] = "Excerpt";

Würde den Auszugsteil töten und nur die Taxonomie einbringen. Sie müssen nur Ihren eigenen Steuernamen eingeben. Und auch im ersten Filter, Ihrem eigenen CPT (gemäß dem Link, den ich gegeben habe)


Was Ihre andere Frage betrifft, möchten Sie nur die Taxonomie ausspucken? Ich bin mir nicht sicher, also werde ich nur versuchen zu beantworten, was ich denke, dass Sie fragen.

            <?php   
            // Let's find out if we have taxonomy information to display   
            // Something to build our output in   
            $taxo_text = '';   

            // Variables to store each of our possible taxonomy lists   
            // This one checks for a Product Category classification   
            $prodcat_list = get_the_term_list( $post->ID, 'product_category', '', ', ', '' );

            // Add Product Category list if this post was so tagged   
            if ( '' != $prodcat_list )   
            $taxo_text .= $prodcat_list;
            ?>

Ich verwende dies, um meine Taxonomie (product_category) zu speichern. Ich platziere dies oben in meiner Schleife, über der ich die tatsächliche Steuer anzeigen muss. Dann kann ich es ausspucken mit:

<?php echo $taxo_text; ?>

Der große Codeblock lädt also die Begriffe für product_category auf, und wenn Sie dann Taxotext ausgeben, werden die Begriffe ausgespuckt, und es verhält sich wie bei the_category. Sie müssten nur Ihren Steuernamen austauschen, wenn ich product_category habe

3
Rev. Voodoo