Как я могу изменить пользовательские сообщения и категории WordPress на новые пользовательские сообщения и категории - PullRequest
0 голосов
/ 30 марта 2020

В моей базе данных есть 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 '
'; }}

1 Ответ

1 голос
/ 30 марта 2020
$new = "real_estate_category";
$old = "re-category";

$cat = get_terms( array (
    'taxonomy' => $old,
    'hide_empty' => false,
));

global $wpdb;
$table = $wpdb->prefix . "term_taxonomy";
foreach ($cat as $c) {          
    $wpdb->update($table, array("taxonomy" => $new), array("term_id" => $c->term_id), array("%s"));         
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...