I am using the following code to delete some default pages and to also create some default pages for all new sites that are created. It work as is now but that is only because I purposely have a mistake there that whenever I correct, the functions stop working.
This is the part of the code with the purposeful error ( I was also trying to use some code to choose a default page template but that didnt work )
function create_my_pages3($blog_id, $user_id){
switch_to_blog($blog_id);
// not really need, new blogs shouldn't have any content
if(get_page_by_title('contact')) return;
// create each page
$page_id = wp_insert_post(array(
'post_title' => 'Attorneys',
'post_name' => 'attorneys',
'post_content' => 'This is your Attorney page.',
'post_status' => 'publish',
'post_author' => $user_id, // or "1" (super-admin?)
'post_type' => 'page',
'menu_order' => 3,
'comment_status' => 'closed',
'ping_status' => 'closed',
// + see: http://codex.wordpress.org/Function_Reference/wp_insert_post
));
update_post_meta( $id, '_wp_page_template', 'new_template.php' );
restore_current_blog();
}
Heres the full code
// Create Pages
add_action('wpmu_new_blog', 'create_my_pages', 10, 2);
function create_my_pages($blog_id, $user_id){
switch_to_blog($blog_id);
// not really need, new blogs shouldn't have any content
if(get_page_by_title('About')) return;
// create each page
$page_id = wp_insert_post(array(
'post_title' => 'About',
'post_name' => 'about',
'post_content' => 'This is your about page',
'post_status' => 'publish',
'post_author' => $user_id, // or "1" (super-admin?)
'post_type' => 'page',
'menu_order' => 1,
'comment_status' => 'closed',
'ping_status' => 'closed',
// + see: http://codex.wordpress.org/Function_Reference/wp_insert_post
));
restore_current_blog();
}
add_action('wpmu_new_blog', 'create_my_pages2', 10, 2);
function create_my_pages2($blog_id, $user_id){
switch_to_blog($blog_id);
// not really need, new blogs shouldn't have any content
if(get_page_by_title('Contact')) return;
// create each page
$page_id = wp_insert_post(array(
'post_title' => 'Contact',
'post_name' => 'contact',
'post_content' => 'This is your contact page.',
'post_status' => 'publish',
'post_author' => $user_id, // or "1" (super-admin?)
'post_type' => 'page',
'menu_order' => 2,
'comment_status' => 'closed',
'ping_status' => 'closed',
// + see: http://codex.wordpress.org/Function_Reference/wp_insert_post
));
restore_current_blog();
}
add_action('wpmu_new_blog', 'create_my_pages5', 10, 2);
function create_my_pages5($blog_id, $user_id){
switch_to_blog($blog_id);
// not really need, new blogs shouldn't have any content
if(get_page_by_title('Attorneys')) return;
// create each page
$page_id = wp_insert_post(array(
'post_title' => 'Attorneys',
'post_name' => 'attorneys',
'post_content' => 'This is your Attorney page.',
'post_status' => 'publish',
'post_author' => $user_id, // or "1" (super-admin?)
'post_type' => 'page',
'menu_order' => 5,
'comment_status' => 'closed',
'ping_status' => 'closed',
// + see: http://codex.wordpress.org/Function_Reference/wp_insert_post
));
restore_current_blog();
}
add_action('wpmu_new_blog', 'create_my_pages3', 10, 2);
function create_my_pages3($blog_id, $user_id){
switch_to_blog($blog_id);
// not really need, new blogs shouldn't have any content
if(get_page_by_title('contact')) return;
// create each page
$page_id = wp_insert_post(array(
'post_title' => 'Attorneys',
'post_name' => 'attorneys',
'post_content' => 'This is your Attorney page.',
'post_status' => 'publish',
'post_author' => $user_id, // or "1" (super-admin?)
'post_type' => 'page',
'menu_order' => 3,
'comment_status' => 'closed',
'ping_status' => 'closed',
// + see: http://codex.wordpress.org/Function_Reference/wp_insert_post
));
update_post_meta( $id, '_wp_page_template', 'new_template.php' );
restore_current_blog();
}
add_action('wpmu_new_blog', 'create_my_pages4', 10, 2);
function create_my_pages4($blog_id, $user_id){
switch_to_blog($blog_id);
// not really need, new blogs shouldn't have any content
if(get_page_by_title('Practice Areas')) return;
// create each page
$page_id = wp_insert_post(array(
'post_title' => 'Practice Areas',
'post_name' => 'practice-areas',
'post_content' => 'This is your practice areas page.',
'post_status' => 'publish',
'post_author' => $user_id, // or "1" (super-admin?)
'post_type' => 'page',
'menu_order' => 4,
'comment_status' => 'closed',
'ping_status' => 'closed',
// + see: http://codex.wordpress.org/Function_Reference/wp_insert_post
));
restore_current_blog();
}
// Delete Pages
add_action('wpmu_new_blog', 'delete_my_pages', 10, 2);
function delete_my_pages(){
$post = get_page_by_path('hello-world',OBJECT,'post');
if ($post)
wp_delete_post($post->ID,true);
}
add_action('wpmu_new_blog', 'delete_my_pages2', 10, 2);
function delete_my_pages2(){
$page = get_page_by_path('login',OBJECT,'page');
if ($page)
wp_delete_post($page->ID,true);
}
add_action('wpmu_new_blog', 'delete_my_pages3', 10, 2);
function delete_my_pages3(){
$page = get_page_by_path('logout',OBJECT,'page');
if ($page)
wp_delete_post($page->ID,true);
}
add_action('wpmu_new_blog', 'delete_my_pages4', 10, 2);
function delete_my_pages4(){
$page = get_page_by_path('lostpassword',OBJECT,'page');
if ($page)
wp_delete_post($page->ID,true);
}
add_action('wpmu_new_blog', 'delete_my_pages5', 10, 2);
function delete_my_pages5(){
$page = get_page_by_path('register',OBJECT,'page');
if ($page)
wp_delete_post($page->ID,true);
}
add_action('wpmu_new_blog', 'delete_my_pages6', 10, 2);
function delete_my_pages6(){
$page = get_page_by_path('resetpass',OBJECT,'page');
if ($page)
wp_delete_post($page->ID,true);
}
add_action('wpmu_new_blog', 'delete_my_pages7', 10, 2);
function delete_my_pages7(){
$page = get_page_by_path('sample-page',OBJECT,'page');
if ($page)
wp_delete_post($page->ID,true);
}
add_action('wpmu_new_blog', 'delete_my_pages8', 10, 2);
function delete_my_pages8(){
$page = get_page_by_path('store',OBJECT,'page');
if ($page)
wp_delete_post($page->ID,true);
}
How can I clean this up and make it work without the purposeful error?
EDIT
The error is seen here –
// not really need, new blogs shouldn't have any content
if(get_page_by_title('contact')) return;
where it says ‘contact’ it’s suppose to match this (attorneys)
// create each page
$page_id = wp_insert_post(array(
'post_title' => 'Attorneys',
'post_name' => 'attorneys',
If I change contact to attorneys though, then all the deleted pages show up again.
I’m really not sure where your logic is failing and haven’t revised each one of your insert/delete hooks. But the code can be greatly simplified to only call each function once, thus making it easy to make it work.