Je crée une page par programme en utilisant $ wpdb-> insert () et la page résultante renvoie une erreur 404.
Ainsi, lorsque j'ajoute la page par programme, tout ce qui se trouve dans la base de données a exactement le même aspect que s'il avait été ajouté via la zone d'administration de WordPress. Je peux même aller dans la zone d'administration WordPress de ce site Web et éditer le message. Cependant, si je vais voir la page, il jette un 404. Maintenant, si je "met à jour" le message à partir de la zone d'administration de WordPress, le 404 disparaît.
Si je crée un article par programme et que je le crée à partir de la zone Admin WordPress, puis que je regarde les colonnes de la base de données, ce sont les mêmes valeurs EXACT (ou qui semblent l'être). Pourquoi travaillerait-on et on ne travaillerait pas? J'utilise aussi des permaliens (rien de coutume, juste un de ces choix prédéfinis).
$post = array(
'post_author' => 1,
'post_date' => date('Y-m-d H:i:s'),
'post_date_gmt' => date('Y-m-d H:i:s'),
'post_content' => '',
'post_title' => 'My Page',
'post_name' => 'my-page',
'post_excerpt' => '',
'post_status' => 'publish',
'comment_status' => 'open',
'ping_status' => 'open',
'post_modified' => date('Y-m-d H:i:s'),
'post_modified_gmt' => date('Y-m-d H:i:s'),
'post_parent' => 0,
'post_type' => 'page',
'comment_count' => 0
);
$wpdb->insert(
'wp_posts',
$post,
array( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' );
);
Je pensais utiliser un permalien de base, mais j'ai oublié que j'avais utilisé une structure personnalisée de permalien sur ce site Web en particulier.
Le permalien personnalisé que j'ai utilisé était %postname%
.
Je suis passé à l'option de mois et de nom et maintenant tout fonctionne. Désolé pour la fausse question.