wpdb-> не работает

EDIT: переписал страницу с нуля и не смог разобраться в различиях. Новая страница работает так, как ожидалось.

Здесь проверено несколько вопросов, а также на WordPress.org. Ниже приведен код, который я использую на нескольких страницах, чтобы взять старые записи и подключить их к БД (без проблем на этих страницах). На странице больше кода, но у меня проблемы. Он не работает на одной странице.

Я не получаю никаких ошибок, даже с $ wpdb-> show_errors (); Только вывод, который я получаю, – это после использования $ wpdb-> print_error (), который дает мне результат:

`WordPress database error: [] SHOW FULL COLUMNS FROM `wp_posts` 

$ new_id = $ wpdb-> insert_id; $ new_id на данный момент равно 0, потому что ничего не было вставлено в БД (проверено через PHPMyAdmin).

Я попытался указать, какие типы данных я передаю во вставке (через третий массив «% s» и т. Д.), Но получил те же результаты.

Будут оценены любые рекомендации других тестов или обходные пути.

=====================

 function transfer_officer($old_record) { global $wpdb; $wpdb->show_errors(); $status = 'publish'; $old_id = $old_record[0]; $name = $old_record[1]; $post_date = date('Ymd h:i:s'); $post_data = array( 'post_author' => 1, 'post_date' => $post_date, 'post_date_gmt' => $post_date, 'post_content' => '', 'post_title' => $name, 'post_excerpt' => '', 'post_status' => $status, 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_password' => '', 'post_name' => officer_name_to_slug($name), 'to_ping' => '', 'pinged' => '', 'post_modified' => $post_date, 'post_modified_gmt' => $post_date, 'post_content_filtered' => '', 'post_parent' => 0, 'menu_order' => 0, 'post_type' => 'rb_board_officers_posts', 'post_mime_type' => '', 'comment_count' => 0 ); //put into post table $wpdb->insert('wp_posts', $post_data); $wpdb->print_error(); var_dump($wpdb); $new_id = $wpdb->insert_id; 

У меня та же проблема.

Решение 1. Разделите свои данные. WordPress отклоняет запрос, если длина значения больше длины поля, определенной в базе данных.

В вашем запросе вставки значение поля post_type превысило 20- значный предел.

Решение 2. Используйте метод запроса $ wpdb->

Вы пытались использовать введенные вручную данные, чтобы узнать, вставлено ли это? Просто сделайте кое-что, чтобы заменить переменные. Также убедитесь, что post_author имеет разрешение на вставку сообщений.

Другой вариант – попробовать wp_insert_post () и посмотреть, работает ли это.