Je viens d'installer une nouvelle installation de wp. J'ai créé un nouveau thème pour enfants basé sur le thème TwentyTwelve. Dans le thème enfant functions.php, j'ai créé un nouveau message personnalisé appelé "actualités". J'ai ajouté deux messages dans les "nouvelles" et lorsque je les visualise, une erreur "page non trouvée" s'affiche. Voir capture d'écran: http://pasteboard.co/dtIOK6g.jpg
Je m'attends à ce que les articles soient affichés, mais je reçois une page 404. Pourquoi.
Update(pour que ma question soit claire): Depuis l'installation, j'ai effectué très peu de travail, mis à part les éléments suivants:
Merci
RÉSOLU: C'est vraiment bizarre mais je l'ai résolu. Il semble que j’ai eu besoin de resélectionner l’option "Nom du post" pour mes paramètres de permaliens même s’il était déjà sélectionné. La sélection de cette option a de nouveau résolu mon problème. Désolé de toute confusion.
RÉSOLU: C'est vraiment bizarre mais je l'ai résolu. Il semble que j’ai eu besoin de resélectionner l’option "Nom du post" pour mes paramètres de permaliens même s’il était déjà sélectionné. La sélection de cette option a de nouveau résolu mon problème. Désolé de toute confusion.
Je suis allé dans les paramètres> permalien
En fait, c'est un problème commun.
Lorsque vous ajoutez un type de publication personnalisé, vous enregistrez également une nouvelle règle de réécriture avec WordPress. Cependant vous devez effacer vos règles de réécriture après avoir enregistré des éléments pour que WordPress les reconnaisse.
Avec un plugin, ceci est corrigé en accrochant votre enregistrement CPT à la fois init
(donc utilisable) et au hook d'activation du plugin. Ensuite, à l’intérieur du crochet d’activation du plug-in, vous appelez manuellement flush_rewrite_rules()
pour réinitialiser les éléments.
Comme il n’existe pas de configuration analogue d’activation/désactivation de thème, vous pouvez utiliser les options pour définir le moment où le thème a été chargé. Par exemple:
function my_theme_register_cpt() {
$args = array(
// ... your initialization stuff
);
register_post_type( 'news', $news );
}
add_action( 'init', 'my_theme_register_cpt' );
function my_theme_deactivate() {
delete_option( 'my_theme_active' );
}
add_action( 'switch_theme', 'my_theme_deactivation' );
$is_active = get_option( 'my_theme_active' );
if ( 'set' !== $check ) {
my_theme_register_cpt();
flush_rewrite_rules();
add_option( 'my_theme_active', 'set', '', 'no' );
}
En un mot. Ce code va:
init
comme d'habitude.flush_rewrite_rules()
plusieurs fois.