私は$ wpdb-> insert()を使ってプログラム的にページを作成しています、そして結果として生じるページは404エラーを返します。
そのため、私がプログラムでページを追加すると、データベース内のすべてのものは、まるでWordPress管理領域経由で追加されたように見えます。私はそのWebサイトのWordPress管理者領域に行き、投稿を編集することさえできます。しかし、私がそのページを見に行った場合、それは404をスローします。今、私がWordPress管理領域からの投稿を「更新」した場合、404は消えます。
プログラムでポストを作成し、それをWordPressの管理領域から作成してからデータベースの列を見ると、まったく同じ値です(またはそうであるように見えます)。なぜ1つがうまくいくのでしょうか。また、私はパーマリンクを使っています(特別なことは何もなく、定義済みの選択肢のうちの1つだけ).
$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' );
);
基本的なパーマリンクを使用していると思いましたが、この特定のWebサイトでカスタムパーマリンク構造を使用したことを忘れました。
私が使ったカスタムパーマリンクは%postname%
です。
私はそれを月と名前のオプションに切り替えましたが、今ではすべてうまくいきました。偽の質問ですみません。