web-dev-qa-db-fra.com

Avis: map_meta_cap a été appelé de manière incorrecte

J'ai créé un script externe pour importer des données JSON dans un type de publication personnalisé qui utilise wp-load.php. Tout fonctionne bien, mais après chaque mise à jour, je reçois le message.

Notice: map_meta_cap was called incorrectly. The post type EXAMPLE is not registered, so it may not be reliable to check the capability "edit_post" against a post of that type.

J'appelle le script dans un thème enfant et post_type_exists renvoie false mais fonctionne correctement ...

J'ai vu un avis similaire dans un fil de la piste principale, mais il est question de commentaires et le type de message que je publie ne comporte aucune fonctionnalité de commentaire.

function child_post_types() {

$labels = array(
    'name'                => _x( 'Courses', 'Post Type General Name', 'test' ),
    'singular_name'       => _x( 'Course', 'Post Type Singular Name', 'test' ),
    'menu_name'           => __( 'Courses', 'test' ),
    'parent_item_colon'   => __( 'Parent Course:', 'test' ),
    'all_items'           => __( 'All Courses', 'test' ),
    'view_item'           => __( 'View Course', 'test' ),
    'add_new_item'        => __( 'Add New Course', 'test' ),
    'add_new'             => __( 'Add New', 'test' ),
    'edit_item'           => __( 'Edit Course', 'test' ),
    'update_item'         => __( 'Update Course', 'test' ),
    'search_items'        => __( 'Search Courses', 'test' ),
    'not_found'           => __( 'Not found', 'test' ),
    'not_found_in_trash'  => __( 'Not found in Trash', 'test' ),
);
$args = array(
    'label'               => __( 'Course', 'test' ),
    'description'         => __( 'Courses', 'test' ),
    'labels'              => $labels,
    'supports'            => array( 'title', 'thumbnail', 'editor', 'revisions', 'author' ), //editor, thumbnail, title, author, excerpt, trackpacks, custom-fields, comments, revisions, page-attributes, post-formats 
    'hierarchical'        => false,
    'public'              => true,
    'show_ui'             => true,
    'show_in_menu'        => true,
    'show_in_nav_menus'   => true,
    'show_in_admin_bar'   => true,
    'menu_position'       => 5,
    'can_export'          => true,
    'has_archive'         => true,
    'exclude_from_search' => false,
    'publicly_queryable'  => true,
    'rewrite'             =>array('slug'=>'courses'),
    'capability_type'     => 'page',
);
register_post_type( 'course', $args );

}    
add_action( 'init', 'child_post_types', 0 );

Et le script est assis dans le thème de mon enfant, il se contente de récupérer un fichier json local et de parcourir en boucle les cours avec wp_update_post ()

require('../../../wp-load.php');

$data = json_decode( file_get_contents( 'wp-content/themes/_theme/courses.json' ), true );

foreach($data as $key => $c){

  $course = wp_update_post( array(
                'ID'    => $courseID, 
                'post_title' => $c['CourseTitle'],
                'post_content' => $c['Description'],
            ), true );
}

Des idées?

2
chris

Aujourd'hui, j'ai exactement le même comportement lors de l'ajout d'un type de message personnalisé. J'ai également remarqué que certains outils de recherche post-administration avaient cessé de fonctionner. Mon debug_log a montré exactement le même avis.

Le problème s’est avéré être du texte avant la balise d’ouverture <?php (fichier du haut) où j’ai enregistré le CPT.

Exemple

some text here<?php
/**
 * @class My_Cpt_Class
 */
.......

Le CPT est enregistré correctement. Je peux ajouter des publications, etc. Mais quelques actions de publication par défaut (d'autres plugins également) cessent de fonctionner pour TOUS les types de publication. Je ne sais pas pourquoi cela se produit avec cette erreur.

1
Bjorn