В моей базе данных есть 2 пользовательских типа сообщений и их категории.
Старый тип и категория сообщения
Тип сообщения = недвижимость
Категория = повторная категория
Тип сообщения Mew и Категория
Тип сообщения = real_estate
Категория = real_estate_category
Теперь я хочу преобразовать все старый тип записи и их категории в новый пользовательский тип поста и их категории .
Итак, используя этот код, я могу получить все старые типы сообщений и изменить старый тип сообщений на новый тип сообщений НО как я могу изменить вложенные категории старого типа записей к новым категориям типов сообщений?
<code>add_action( 'template_redirect', 'everstrap_do_migration' );
function everstrap_do_migration() {
// Convert their real-estate to real_estate post type
if( $_REQUEST['action'] && $_REQUEST['action'] == 'convert_re_post_type' ) {
global $wpdb;
$old_custom_post_type = 'real-estate';
$ne_custom_post_type = 'real_estate';
// A sql query to return all real-esate post
$results = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_title FROM {$wpdb->posts} WHERE post_type = %s and post_status = 'publish'", $old_custom_post_type ), ARRAY_A );
// Return null if we found no results
if ( ! $results )
return;
foreach ( $result as $key => $value) {
// Update query
$update = $wpdb->update(
$wpdb->posts,
array(
'post_type' => $new_custom_post_type,
),
array(
'post_type' => $old_custom_post_type,
),
array(
'%s',
),
array(
'%s'
)
);
if( $update ) {
echo 'Updated post id ' . $value['ID'];
} else {
echo 'can\' update';
}
}
// echo '<pre>';
// print_r( $results );
// echo '
'; }}