CPT-Vorlage wird nicht angezeigt – Getting 404

Ich entwickle ein Custom Post Type Plugin, das in Dev funktioniert. Jetzt, da ich es in die Produktion verschoben habe, erhalte ich einen 404, wenn ich versuche, die Vorlage für den CPT anzuzeigen.

Also, zwei Fragen:

1- Gibt es einen Mechanismus, um den Pfad zu bestimmen, den WP benötigt hat, um durch die Hierarchie zu gelangen?

2- Warum sollte es mir nicht einfach die Single- oder Indexseite geben?

Ich habe $ wp_query und einen Stacktrace am Ende des 404 deployed. Hier ist ein Teil von dem, was ich gefunden habe:

[query] => Array ( [page] => [pagename] => refletters/proximity ) [request] => SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND (wp_posts.ID = '0') AND wp_posts.post_type = 'page' ORDER BY wp_posts.post_date DESC [posts] => Array ( ) [queried_object] => [queried_object_id] => 0 

Und der Stack-Trace:

 2013-04-27 22:16:41 - 24.52.197.40 - TRACE - index.php - 404.php[39] - wordpress/wp-content/themes/notoriousconsultant/404.php[39] - aaLog->logtrace wordpress/wp-includes/template-loader.php[50] - include wordpress/wp-blog-header.php[16] - require_once wordpress/index.php[17] - require 

Danke für Ihre Hilfe.

Solutions Collecting From Web of "CPT-Vorlage wird nicht angezeigt – Getting 404"

Spülen Sie die Umschreibungsregeln immer, wenn Sie einen neuen öffentlichen Posttyp oder eine neue Taxonomie registrieren. Andernfalls werden die internen Umschreibungsregeln dies nicht berücksichtigen, wenn eine URL einer Abfrage zugeordnet wird.

Sie können diesen process automatisieren, indem Sie in registered_post_type und registred_taxonomy einhaken.

Im Folgenden finden Sie den aktualisierten Code, der auf Feedback von Kommentaren und anderen Personen basiert.

Download als Plugin T5 Silent Flush auf GitHub.

 add_action( 'registered_post_type', 't5_silent_flush_cpt', 10, 2 ); add_action( 'registered_taxonomy', 't5_silent_flush_tax', 10, 3 ); /** * Flush rules for custom post types. * * @wp-hook registered_post_type * @param string $post_type * @param stdClass $args * @return void */ function t5_silent_flush_cpt( $post_type, $args ) { if ( $args->_builtin ) return; if ( ! $args->public ) return; if ( ! $args->publicly_queryable ) return; if ( ! $args->rewrite ) return; $slug = $post_type; if ( isset ( $args->rewrite['slug'] ) && is_string( $args->rewrite['slug'] ) ) $slug = $args->rewrite['slug']; $rules = get_option( 'rewrite_rules' ); if ( ! isset ( $rules[ $slug . '/?$'] ) ) flush_rewrite_rules( FALSE ); } /** * Flush rules for custom post taxonomies. * * @wp-hook registered_taxonomy * @param string $taxonomy * @param string $object_type * @param array $args * @return void */ function t5_silent_flush_tax( $taxonomy, $object_type, $args ) { // No idea why we get an array here, but an object for post types. // Objects are easier to write, so ... $args = (object) $args; if ( $args->_builtin ) return; if ( ! $args->public ) return; if ( ! $args->rewrite ) return; $slug = $taxonomy; if ( isset ( $args->rewrite['slug'] ) && is_string( $args->rewrite['slug'] ) ) $slug = $args->rewrite['slug']; $rules = get_option( 'rewrite_rules' ); if ( ! isset ( $rules[ $slug . '/(.+?)/?$'] ) ) flush_rewrite_rules( FALSE ); } 

Dadurch werden die Regeln jedes Mal bereinigt, wenn Sie einen neuen Posttyp oder eine neue Taxonomie erstellen. Sie müssen die Permalink-Einstellungen nicht erneut aufrufen.