如果我使用wp_insert_page()
创建一个页面,我注意到它没有显示在仪表板的所有页面显示中。我知道正在创建该页面,因为我可以使用链接[site]/?id=664
访问该页面,其中664
是wp_insert_page()
调用返回的页面ID。
有谁知道为什么页面不在所有页面中?
答案 0 :(得分:0)
您需要使用wp_insert_post()
而不是wp_insert_page()
。这是一个例子:
// Create post object
$my_post = array(
'post_title' => wp_strip_all_tags( $_POST['post_title'] ),
'post_content' => $_POST['post_content'],
'post_status' => 'publish',
'post_type' => 'page'
);
// Insert the post into the database
wp_insert_post( $my_post );
答案 1 :(得分:0)
并不总是想要解决WordPress提供的问题,而是寻求不同的解决方案。有时您不需要后端的各种应用程序来发布帖子。
一个简单的例子是一个表单,无论在哪里,表单的内容应该自动发布在你的WordPress博客上。或者,您可以使用其他状态发送它,因此仅在管理员批准时才发布它们。
为了一个良好的开端,这是一个功能,它非常强大,适用于负责出版物的所有流程。
wp_insert_post($postarr = array(), $wp_error = false)
您可以在Codex of the function中找到很多信息。
可能的参数 $ postarr
comment_status [ 'closed' | 'open' ] // 'closed' means no comments.
ID [ <post id> ] //Are you updating an existing post?
menu_order [ <order> ] //If new post is a page, sets the order should it appear in the tabs, Default is 0
page_template [ <template file> ] //Sets the template for the page.
ping_status [ value of default_ping_status ] //Ping status?, Default is empty string
pinged [ empty ] //?
post_author [ $user_ID ] //The user ID number of the author.
post_category [ array(<category id>, <...>) ] //Add some categories.
post_content [ <the text of the post> ] //The full text of the post.
post_date [ Y-m-d H:i:s ] //The time post was made.
post_date_gmt [ Y-m-d H:i:s ] //The time post was made, in GMT.
post_excerpt [ <an excerpt> ] //For all your post excerpt needs.
post_parent [ <post ID> ] //Sets the parent of the new post, Default is 0
post_password [ empty ] //password for post?, Default is empty string
post_status [ 'draft' | 'publish' | 'pending' ] //Set the status of the new post., Default is 'draft'
post_title [ <the title> ] //The title of your post.
post_type [ 'post' | 'page' ] //Sometimes you want to post a page, Default is 'post'.
tags_input [ '<tag>, <tag>, <...>' ] //For tags.
to_ping [ whetever ] //Whether to ping.
示例强>
在最简单的情况下,您将表单的内容提供给数组,它使用此函数来处理WordPress中的进程。
要在WordPress之外使用此功能,必须在此区域中提取WordPress的功能。如果表单未在WordPress中的模板中实现,但在WP之外,则必须实现文件wp-load.php
,有关更多信息,请阅读文章“Embed WordPress Functions Outside WordPress”。
require( '../my_wordpress_install_root/wp-load.php' );
// Create post object
$my_post = array();
$my_post['post_title'] = 'My post';
$my_post['post_content'] = 'This is my post.';
$my_post['post_status'] = 'publish';
$my_post['post_author'] = 1;
$my_post['post_category'] = array(0);
// Insert the post into the database
wp_insert_post( $my_post );"