Я пытаюсь программно генерировать данные на моем сайте WordPress. Я использую WPAlchemy для своих метабоксов и плагин пост-пост-пост для отношений пост-пост.
В моей функции генерации я создаю пользовательский тип поста под названием «песни», чтобы все они были связаны с одним конкретным постом типа поста, называемым «художники». я использую p2p_type('songs_to_artist')->connect($song_id, $artist_id, ['date' => current_time ('mysql')])
соединить два поста для каждой сгенерированной песни. Моя проблема в том, что после того, как я запустил эту функцию, я больше не могу обновлять метаданные исполнителя из своего метабокса в виде поста редактирования бэкэнда.
Я немного покопался и нашел несколько результатов:
update_post_meta()
или обновив его прямо в БД.Кто-нибудь еще сталкивался с этим? Я нигде не могу найти ничего другого, описывающего это поведение.
Огромное спасибо заранее!
Проблема заключалась в том, что при слишком большом количестве соединений было слишком много данных, отображаемых на странице редактирования, что препятствовало сохранению 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;
}
Это исключило эту конкретную карту из представления редактирования администратора, значительно ускорив и удалив проблему, которую я описал.
Других решений пока нет …