I have 145+ pages I need to update with a new CS template and would rather not do it by hand!
I’ve tried and got most of the way there but there’s something missing. here’s what I have so far:
- copy page content
- copy ‘_cornerstone_data’ and ‘_cornerstone_settings’ post meta fields
- delete ‘_cornerstone_override’ post meta if it exists
it so nearly works! one problem is that while the CS template is applied (mostly), it can’t be edited in CS.
I’m using ACF Advanced Custom Fields functions because they enable post meta arrays to be written directly.
$post_ID = 6039; //donor page
$post_ID2 = 7821; //recipient page
//copy page content between pages
$content_post = get_post($post_ID);
$content = $content_post->post_content;
$my_post = array(
‘ID’ => $post_ID2,
‘post_content’ => $content
);
wp_update_post( $my_post );
//use ACF functions to copy the 2 post meta fields containing CS template config
$cornerstone_data = get_field( ‘_cornerstone_data’, $post_ID);
update_field( ‘_cornerstone_data’, $cornerstone_data, $post_ID2);
$cornerstone_settings = get_field( ‘_cornerstone_settings’, $post_ID);
update_field( ‘_cornerstone_settings’, $cornerstone_settings, $post_ID2);
//use ACF functions to delete ‘cornerstone_override’ post meta if it exists (to avoid ‘content has be modified outside CS’ error)
if ( get_field(’_cornerstone_override’, $post_ID2) ) { //field exists
delete_field(’_cornerstone_override’, $post_ID2);
}
echo ‘Post CS template copied!’;