How can I automatically create a WordPress page (for example, when plugin is activated)?
-
what do you mean exactly ? Do you want to code a plugin that creates a page using the wp core API ?Stefano Borini– Stefano Borini2009-07-27 01:06:51 +00:00Commented Jul 27, 2009 at 1:06
-
yes, exactly that. i want to create NEW page, not insert existing one somewhere.Phil– Phil2009-07-27 13:26:26 +00:00Commented Jul 27, 2009 at 13:26
Add a comment
|
2 Answers
Use wp_insert_post(), which can insert pages as well: http://codex.wordpress.org/Function_Reference/wp_insert_post
See post_type below.
$post = array(
'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.
'page_template' => [ <template file> ] //Sets the template for the page.
'comment_status' => [ 'closed' | 'open' ] // 'closed' means no comments.
'ping_status' => [ ? ] //Ping status?
'pinged' => [ ? ] //?
'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_name' => [ <the name> ] // The name (slug) for your post
'post_parent' => [ <post ID> ] //Sets the parent of the new post.
'post_password' => [ ? ] //password for post?
'post_status' => [ 'draft' | 'publish' | 'pending' ] //Set the status of the new post.
'post_title' => [ <the title> ] //The title of your post.
'post_type' => [ 'post' | 'page' ] //Sometimes you want to post a page.
'tags_input' => [ '<tag>, <tag>, <...>' ] //For tags.
'to_ping' => [ ? ] //?
);
// Insert the post into the database
wp_insert_post( $post );
7 Comments
Tyler Carter
Because Pages are simply Posts that are flagged as Pages.
Phil
Thanks. Easier that I thought :)
Phil
Also, newbie plugin dev question... will this make page when i activate plugin or i need to add some code to specify that i want plugin to make that page at the moment it's activated?
Artem Russakovskii
That's up to you. When you make the plugin, there's space for you to do things when the plugin is activated as well as a multitude of hooks and actions you can hook into and do things only when a certain event occurs. Read up on WP plugin development online.
Vaibhav Bhanushali
This code goes to infinite loop when I add it to my functions.php
|
Wordpress provides the wp->query API method for database abstraction. You can create the appropriate query to make a Page when needed.
1 Comment
Artem Russakovskii
That's a pretty bad suggestion in general. You should use query only if you can't achieve the same with an API function. The main reason being future table changes may break your query while functions are hopefully upkept.