wp_insert_post显示404(找不到页面)

时间:2016-08-24 22:59:07

标签: php wordpress

我正在通过管理区域中的自定义菜单插入多个正在生成的页面。 这是代码的一部分:

                                $_p = array();
                                $_p['post_title'] = $the_page_title;
                                $_p['post_content'] = $the_page_content;
                                $_p['post_status'] = 'publish';
                                $_p['post_type'] = 'page';
                                $_p['comment_status'] = 'closed';
                                $_p['ping_status'] = 'closed';
                                $_p['post_category'] = array(1);
                                $the_page_id = wp_insert_post( $_p);

由于某种原因,当在循环中执行插入时,我会看到404页面(不是实际的重定向 - URI是相同且正确的,但内容是404页面的内容)。我知道这就是原因,因为注释掉该行会消除这个问题。 我确信404不是由于缺少页面,因为刷新页面可以解决问题 - 网址相同并被打开。

我将问题缩小到“parse_query”内部发送的“错误”,但我找不到它的原因。

if ( '404' == $qv['error'] )  $this->set_404();

即使更奇怪,我在query.php(其中定义了parse_query)中尝试了var_dump-ing,如果我转储了某些内容,则没有404重定向 - 一切正常。

我在SO上发现了类似的问题,但是他们的问题与表格中的POST参数有关,而在我的情况下则没有。

有没有人遇到过这样的行为?在什么情况下wp_insert_post会显示404?我在wordpress 4.6

1 个答案:

答案 0 :(得分:0)

您必须单击仪表板上设置下的“保存永久链接”按钮。该按钮保存新页面以提供良好的工作。或者您可以向插件添加一些代码以保存永久链接。现在,我解决了我的相同问题这样。

相关问题