Зарегистрируйте неиерархическую таксономию и поле показать мета в типе записи


Я пытаюсь показать мета-поле в моем типе публикации продукта, но я получаю это предупреждение об ошибке...

enter image description here

Ошибка предупреждения...

Предупреждение: call_user_func() ожидает, что параметр 1 будет допустимым обратным вызовом, без массива или строки, указанных в /home/.../wp/wp-admin/includes/template.php в режиме онлайн 1073

Смотрите мой код таксономии реестра ниже...

class Types {


    /**
     * Method to run on WordPress initialisation
     *
     * @uses init action
     * @see  https://codex.wordpress.org/Plugin_API/Action_Reference/init
     */
    public function action_init () {

        $this->register_taxonomies();

    }


    /**
     * Registers Taxonomies
     * 
     * @see https://codex.wordpress.org/Function_Reference/register_taxonomy
     * @return void
     */
    protected function register_taxonomies () {

        // product tag taxonomy
        $labels = array(
            'name'                  => _x( 'Tags', 'taxonomy general name' ),
            'singular_name'         => _x( 'Tag', 'taxonomy singular name' ),
            'search_items'          => __( 'Search tags' ),
            'popular_items'         => __( 'Popular tags' ),
            'all_items'             => __( 'All tags' ),
            'parent_item'           => null,
            'parent_item_colon'     => null,
            'edit_item'             => __( 'Edit category' ),
            'update_item'           => __( 'Update category' ),
            'add_new_item'          => __( 'Add new category' ),
            'new_item_name'         => __( 'New category name' ),
            'separate_items_with_commas'  => __( 'Separate tags with commas' ),
            'add_or_remove_items'   => __( 'Add or remove tags' ),
            'choose_from_most_used' => __( 'Choose from the most used tags' ),
            'not_found'             => __( 'No tags found.' ),
            'menu_name'             => __( 'Tags' ),
        );

        $args = array(
            'hierarchical'          => false,
            'labels'                => $labels,
            'show_ui'               => true,
            'show_admin_column'     => true,
            'update_count_callback' => '_update_post_term_count',
            'query_var'             => true,
            'rewrite'               => array( 'slug' => 'tags' ),
            'meta_box_cb'           => true
        );

        register_taxonomy('product_tags', array('product'), $args );

    }


} new Types();

На боковой панели панели мониторинга все работает нормально, это просто сообщение о продукте метабокс получает эту ошибку.

У кого-нибудь раньше была такая проблема?

Спасибо Джош

Author: joshmoto, 2018-12-04

1 answers

Ожидается, что аргумент meta_box_cb будет функцией обратного вызова. Поэтому он должен быть вызываемым.

Как предложил Майло в своем комментарии, попробуйте оставить этот аргумент в стороне, тогда будет использоваться функция по умолчанию для содержимого метабокса. Вам нужно только добавить собственную функцию метабокса, если вы действительно хотите настроить вывод метабокса.

    $args = array(
        'hierarchical'          => false,
        'labels'                => $labels,
        'show_ui'               => true,
        'show_admin_column'     => true,
        'update_count_callback' => '_update_post_term_count',
        'query_var'             => true,
        'rewrite'               => array( 'slug' => 'tags' ),
    );

Как описано в справочнике по коду , post_tags_meta_box является значением по умолчанию для неиерархических таксономий. Значение по умолчанию равно используется, если аргумент оставлен в стороне. Поскольку это явно упоминается как необязательное, совершенно нормально просто оставить его.

 2
Author: JHoffmann, 2018-12-04 22:42:04