web-dev-qa-db-ja.com

プログラムで$ wpdbを使用してページを作成すると404エラーが発生する

編集:404エラーを引き起こしていたパーマリンクの問題があったことが判明。

下の元の投稿:

私は$ wpdb-> insert()を使ってプログラム的にページを作成しています、そして結果として生じるページは404エラーを返します。

注意すべきいくつかのこと

  • 私はそれを私が電話をかけているウェブサイトに挿入するのでwp_insert_post()は別のWordPressウェブサイトでそれを作成しているので私はページを作成するのに$ wpdbオブジェクトを使用しています。基本的に私はウェブサイトのネットワークを持っています、そして私は別のサイトから1つのサイトに投稿を作成しています。
  • ページのカスタムpost_name(slug)値を作成しています。

そのため、私がプログラムでページを追加すると、データベース内のすべてのものは、まるでWordPress管理領域経由で追加されたように見えます。私はそのWebサイトのWordPress管理者領域に行き、投稿を編集することさえできます。しかし、私がそのページを見に行った場合、それは404をスローします。今、私がWordPress管理領域からの投稿を「更新」した場合、404は消えます。

プログラムでポストを作成し、それをWordPressの管理領域から作成してからデータベースの列を見ると、まったく同じ値です(またはそうであるように見えます)。なぜ1つがうまくいくのでしょうか。また、私はパーマリンクを使っています(特別なことは何もなく、定義済みの選択肢のうちの1つだけ).

これは私が使っているwpdb挿入呼び出しです...

$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' );
);
1
mikemick

パーマリンクエラー

基本的なパーマリンクを使用していると思いましたが、この特定のWebサイトでカスタムパーマリンク構造を使用したことを忘れました。

私が使ったカスタムパーマリンクは%postname%です。

私はそれを月と名前のオプションに切り替えましたが、今ではすべてうまくいきました。偽の質問ですみません。

0
mikemick