Почему я не могу обновить метаданные сообщения из представления администратора?

Я пытаюсь программно генерировать данные на моем сайте WordPress. Я использую WPAlchemy для своих метабоксов и плагин пост-пост-пост для отношений пост-пост.

В моей функции генерации я создаю пользовательский тип поста под названием «песни», чтобы все они были связаны с одним конкретным постом типа поста, называемым «художники». я использую p2p_type('songs_to_artist')->connect($song_id, $artist_id, ['date' => current_time ('mysql')]) соединить два поста для каждой сгенерированной песни. Моя проблема в том, что после того, как я запустил эту функцию, я больше не могу обновлять метаданные исполнителя из своего метабокса в виде поста редактирования бэкэнда.

Я немного покопался и нашел несколько результатов:

  1. Все работает совершенно нормально, если я запускаю функцию без построения соединения в конце функции.
  2. Все сгенерированные песни делать подключиться к их исполнителю, несмотря на проблему с метаданными исполнителя, которые не обновляются.
  3. я Можно обновить метаданные с помощью функции update_post_meta() или обновив его прямо в БД.
  4. Описанный эффект обновления метаданных происходит после того, как 937-ая связь «songs_to_artist» с этим конкретным исполнителем создана.
  5. В этом процессе нет ошибок.

Кто-нибудь еще сталкивался с этим? Я нигде не могу найти ничего другого, описывающего это поведение.

Огромное спасибо заранее!

0

Решение

Проблема заключалась в том, что при слишком большом количестве соединений было слишком много данных, отображаемых на странице редактирования, что препятствовало сохранению postmeta из-за замедления сайта из-за всех данных о соединении. Простым исправлением для этого является следующий код:

add_filter( 'p2p_admin_box_show', 'toggle_connection_view', 10, 3 );
function toggle_connection_view( $show, $ctype, $post ) {

if ( $ctype->name == 'songs_to_artist' ) {
$show = false;
}

return $show;
}

Это исключило эту конкретную карту из представления редактирования администратора, значительно ускорив и удалив проблему, которую я описал.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]