Warnung erhalten: Fehlt Argument 2 für manage_posts_custom_column ()?

7

Ich habe einen benutzerdefinierten Beitragstyp und zwei benutzerdefinierte Taxonomien erstellt und diese im Abschnitt "Beitrag verwalten" angezeigt. Es wird jedoch die folgende Warnung angezeigt:

Warnung: Fehlendes Argument 2 für manage_posts_custom_column () in /home/aleche23/alexchen.info/wp-content/themes/techozoic-fluid/functions/custom-post-types.php in Zeile 95

Bild:

Geben Sie hier die Bildbeschreibung ein

<?php

/**
 * Create the Blocks custom post type and the Sections custom taxonomy
 */
add_action('init', 'create_post_type');

        // Register custom post types and custom taxonomies
        function create_post_type() {
            register_post_type('blocks',array(
                'labels' => array(
                    'name' => __( 'Blocks' ),
                    'singular_name' => __( 'Block' ),
                    'add_new_item' => 'Add New Block',
                    'edit_item' => 'Edit Block',
                    'new_item' => 'New Block',
                    'search_items' => 'Search Block',
                    'not_found' => 'No Blocks found',
                    'not_found_in_trash' => 'No Blocks found in trash',
                ),
                'public' => true,
                'hierarchical' => false,
                'taxonomies' => array( 'section'),
                'supports' => array('title','editor','thumbnail','custom-fields'),
                'rewrite' => array('slug'=>'blocks','with_front'=>false),
                'menu_position' => 50,
            ));
            register_taxonomy('location','blocks',array(
                'hierarchical' => true,
                'labels' => array(
                    'name' => __( 'Locations' ),
                    'singular_name' => __( 'Location' ),
                    'add_new_item' => 'Add New Location',
                    'edit_item' => 'Edit Location',
                    'new_item' => 'New Location',
                    'search_items' => 'Search Location',
                    'not_found' => 'No Location found',
                    'not_found_in_trash' => 'No Locations found in trash',
                    'all_items' => __( 'All Locations' ),
                ),
                'query_var' => true,
                'rewrite' => array( 'slug' => 'location' ),
            ));
            register_taxonomy('section','blocks',array(
                'hierarchical' => true,
                'labels' => array(
                    'name' => __( 'Sections' ),
                    'singular_name' => __( 'Section' ),
                    'add_new_item' => 'Add New Section',
                    'edit_item' => 'Edit Section',
                    'new_item' => 'New Section',
                    'search_items' => 'Search Section',
                    'not_found' => 'No Sections found',
                    'not_found_in_trash' => 'No Sectionss found in trash',
                    'all_items' => __( 'All Sections' ),
                ),
                'query_var' => true,
                'rewrite' => array( 'slug' => 'section' ),
            ));
            // Add initial terms
            if (!get_option('yoursite-blocks-initialized')) {
                $terms = array(
                    'Intro',
                    'Tagline',
                    'Mainbar',
                    'Sidebar',
                    'Featured',
                    'Content',
                );
                foreach($terms as $term) {
                    if (!get_term_by('name',$term,'section')) {
                        wp_insert_term($term, 'section');
                    }
                }
                update_option('yoursite-blocks-initialized',true);
            }
        }
        // Arrange the position of elements in the table
            add_filter('manage_blocks_posts_columns', 'manage_blocks_posts_columns');

        function manage_blocks_posts_columns($columns) {
            $columns = array(
                'cb' => '<input type="checkbox" />',
                'title' => 'Name',
                'location_column' => 'Location',
                'section_column' => 'Section',
                'author' => 'Author',
                'date' => 'Date',
            );
            return $columns;
        }
        // Verify that we are indeed working with only the custom post type and use a switch statement to test against the column
            add_filter('manage_posts_custom_column', 'manage_posts_custom_column');

        function manage_posts_custom_column( $column,$post_id ) {
            global $typenow;
            if ($typenow=='blocks') {
                $location_taxonomy = 'location';
                $section_taxonomy = 'section';
                switch ($column) {
                case 'location_column':
                    $location_column = get_the_terms($post_id,$location_taxonomy);
                    if (is_array($location_column)) {
                        foreach($location_column as $key => $location) {
                            $edit_link = get_term_link($location,$location_taxonomy);
                            $location_column[$key] = '<a href="'.$edit_link.'">' . $location->name . '</a>';
                        }
                        echo implode(' | ',$location_column);
                    }
                    break;
                case 'section_column':
                    $section_column = get_the_terms($post_id,$section_taxonomy);
                    if (is_array($section_column)) {
                        foreach($section_column as $key => $section) {
                            $edit_link = get_term_link($section,$section_taxonomy);
                            $section_column[$key] = '<a href="'.$edit_link.'">' . $section->name . '</a>';
                        }
                        echo implode(' | ',$section_column);
                    }
                    break;
                }
            }
        }
        // Output multiple taxonomy filters
            add_action('restrict_manage_posts' ,'restrict_manage_posts');

        function restrict_manage_posts() {

            // Only display these taxonomy filters on desired custom post_type listings
            global $typenow;
            if ($typenow == 'blocks') {

                // Create an array of taxonomy slugs you want to filter by - if you want to retrieve all taxonomies, could use get_taxonomies() to build the list
                $filters = array('location', 'section');

                foreach ($filters as $tax_slug) {
                    // Retrieve the taxonomy object
                    $tax_obj = get_taxonomy($tax_slug);
                    $tax_name = $tax_obj->labels->name;
                    // Retrieve array of term objects per taxonomy
                    $terms = get_terms($tax_slug);

                    // Output html for taxonomy dropdown filter
                    echo "<select name='$tax_slug' id='$tax_slug' class='postform'>";
                    echo "<option value=''>Show All $tax_name</option>";
                    foreach ($terms as $term) {
                        // Output each select option line, check against the last $_GET to show the current option selected
                        echo '<option value='. $term->slug, $_GET[$tax_slug] == $term->slug ? ' selected="selected"' : '','>' . $term->name .' (' . $term->count .')</option>';
                    }
                    echo "</select>";
                }
            }
        }

Welches Argument fehlt mir?

janoChen
quelle
Warum habe ich 5 hintereinander gestellte Fragen hintereinander erhalten? Ich habe eine Zeit des Peches?
janoChen

Antworten:

12

Ändern Sie die Zeile 93 von

add_filter('manage_posts_custom_column', 'manage_posts_custom_column');

zu

add_filter('manage_posts_custom_column', 'manage_posts_custom_column', 10, 2);

Das vierte Argument gibt an, wie viele Argumente die Funktion manage_posts_custom_columnakzeptiert (standardmäßig eines).

Kodex: add_filter()

Geert
quelle
Wofür ist das 10?
Francisco Corrales Morales
1
Die 10 bestimmt die Priorität des Filters. codex.wordpress.org/Function_Reference/add_filter
psorensen