it-swarm.com.de

Unzulässiger Offset-Typ in get_post_type_object ()?

Auf meiner WP Seite mit benutzerdefinierten Einträgen für Administratoren wird die folgende Warnung angezeigt (wp-admin/edit.php?post_type=video)

 Warnung: Illegaler Offset-Typ in isset oder leer in wp-includes/post.php in Zeile 817 

Ich verwende WordPress v3.1.3 (aktuell). Zeile 817 ist in der Funktion get_post_type_object() . Eine Suche findet mich zu folgenden Themen:

Diese erwähnen einige verschiedene mögliche Ursachen - z. es könnte sein https://core.trac.wordpress.org/ticket/12704 - aber das ist jetzt behoben (ich starte v3.1.3) - und der letzte Beitrag in einem lautet:

Grundsätzlich haben Sie ein Plugin, das einen Beitragstyp falsch registriert und sich dann im Kern beschwert. Es ist kein Fehler im Kern, wie ich am besten beurteilen kann.

Ich habe ein Plugin (mein eigenes), das einen Beitragstyp registriert, aber ich denke, es macht es richtig.

Hier ist der Code. (Beachten Sie, dass ich diese "Video" -Posts ursprünglich aufgerufen habe, die Front-End-Beschreibung jedoch später in "Trainingsmodul" umbenannt habe, aber den ursprünglichen Namen des Post-Typs beibehalten habe.).

function video_register() {
    $labels = array(
        'name' => _x('Modules', 'post type general name'),
        'singular_name' => _x('Training Module', 'post type singular name'),
        'add_new' => _x('Add New Module', 'video item'),
        'add_new_item' => __('Add New Training Module'),
        'edit_item' => __('Edit Training Module'),
        'new_item' => __('New Training Module'),
        'view_item' => __('View Training Module'),
        'search_items' => __('Search Training Modules'),
        'not_found' =>  __('No Training Modules found'),
        'not_found_in_trash' => __('No Training Modules found in Trash'),
        'parent_item_colon' => ''
    );
    $args = array(
        'labels' => $labels,
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'query_var' => true,
        'has_archive' => 'video',
        'menu_icon' => 'video16x16.png',
        'rewrite' => array('slug'=>'training','with_front'=>false),
        'capability_type' => 'post',
        'hierarchical' => false,
        'menu_position' => '15',
        'supports' => array('title','author','editor','custom-fields','revisions','comments','trackbacks'),
        'taxonomies' => array('category', 'post_tag')
      );
    register_post_type( 'video' , $args );
}
add_action('init', 'video_register');

Gibt es da ein Problem? Warum sehe ich die Warnung?

1
AMcDermott

Ich hatte den gleichen Fehler. Es ist passiert, weil ich einen Post-Typ angefordert habe, den es nicht gab.

add_filter( 'pre_get_posts', 'my_get_posts' );

//events don't exists
function my_get_posts( $query ) {
    $query->set( 'post_type', array( 'post', 'page', 'events' ) );
    return $query;
}
1
Temo

Ich hatte das gleiche Problem und dank der obigen Hinweise, wie ich es gelöst habe.

Die auskommentierte Zeile verursachte die Fehlermeldungen und die nicht kommentierte Zeile wurde von mir geändert und die Warnung wurde behoben.

/*$query->set( 'post_type', array ( 'product' ) );*/
$query->set( 'post_type', 'product' );
0
Michael Davis