Intereting Posts
Почему минимальная защита защищена? Как проверить, является ли сообщение приватным? Показывать содержимое короткого кода на боковой панели? Что делают add_filters () и apply_filter ()? Отключить панель администратора для конкретного контента. Настройка комментариев к сообщениям Список пользователей, кроме текущего пользователя, с помощью wp_dropdown_user? WordPress Reply comment_form в Модале / Лайтбокс (Ajax) Могу ли я запретить пользователям WP (даже администраторам) удалять специальные категории? Назначение меню для тематических мест с активацией темы Пользовательская роль сайта не может получить доступ к меню «Внешний вид» Роли пользователей: как скрыть плагин от показа в WP-Admin? Выпадающий выбор в форме контакта 7 Загрузка на другой анонимный FTP-сервер Перенаправить все ссылки из категории в новые ссылки на новую категорию Предупреждение: call_user_func_array () ожидает, что параметр 1 будет действительным обратным вызовом, func

Как установить идентификатор родительского сообщения вложений в коде?

Я унаследовал импортированный сайт WordPress с несколькими проблемами. У меня есть список идентификаторов attahment и идентификаторов сообщений, но мне нужно повторно подключить их в коде.

У меня есть список всех attachemnt, как это:

$attachments = get_posts( array('post_type' => 'attachment','posts_per_page' => -1)); foreach ( $attachments as $key=>$attachment ) { } 

У меня также есть csv идентификаторов вложений, и к какому сообщению они относятся. Теперь все идентификаторы родительских сообщений attahment равны «0», мне нужно обновить каждый из них, так что идентификатор parnet post – это связанный идентификатор в

Какова ключевая функция wordpress в этом цикле, устанавливающая идентификатор почтового адреса attachemnts? И затем убедитесь, что обновление распространяется и на все метаданные.

Я хочу что-то вроде …. set_attachemnt_parent_id ($ attachment-> ID, $ myIdFromArchives);

Спасибо за вашу помощь!

Изменить. Я попытался выполнить прямое обновление идентификатора базы данных, но это не работает.

В WordPress – вложения – это их собственный пост-тип, что означает, что вам просто нужно обновить сообщение, используя wp_update_post() :

 $media_post = wp_update_post( array( 'ID' => $attachment_id, 'post_parent' => $post_parent_id, ), true ); if( is_wp_error( $media_post ) ) { error_log( print_r( $media_post, 1 ) ); } 

В вышесказанном вы передадите как идентификатор прикрепления, так и идентификатор сообщения, который будет вложением «родитель» в wp_update_post() но мы также хотим убедиться, что если по какой-либо причине он не может быть обновлен, мы добавим WP_Error в error_log, чтобы мы могли отлаживать то, что пошло не так.

Вы также можете выполнить дополнительную проверку перед wp_update_post() чтобы гарантировать, что данный идентификатор вложений действительно является вложением. Это просто еще одна проверка, поэтому мы не случайно обновляем то, что нам не нужно:

 if( 'attachment' === get_post_type( $attachment_id ) ) { // Update Post Code }