Как опубликовать одну запись на нескольких сайтах WordPress?
Мы разрабатываем несколько сайтов на WordPress. Нам нужно публиковать некоторые записи более чем на одном сайте. Требуется сохранять запись сразу на нескольких сайтах одним кликом.
Я искал в Google, но не смог найти подходящего руководства по этому вопросу.

Вы можете использовать функцию switch_to_blog()
для этого
$other_id = 1234 // ID другого сайта, в который нужно сохранить запись
switch_to_blog($other_id);
$my_post = array(
'post_title' => $post_title,
'post_content' => $post_content,
'post_status' => 'publish',
'post_author' => $post_author,
);
// Вставляем запись в базу данных
wp_insert_post( $my_post );
restore_current_blog();
Есть подводный камень, если вы выполняете этот код в хуке save_post
, потому что wp_insert_post
также вызывает save_post
и вы попадаете в бесконечный цикл. Эта запись на Stack Overflow предлагает решение этой проблемы.

Автор плагина Broadcast приветствует вас.
Учитывая мой значительный опыт в области мультипостинга и всех связанных с этим проблем, я рекомендую доверить публикацию записей проверенному плагину.
Используя API, вы можете транслировать запись на любое количество сайтов в сети. Плагин автоматически позаботится о копировании вложений (да, вложения имеют разные URL и ID на каждом сайте).
Вот как транслировать запись 123 на несколько сайтов:
ThreeWP_Broadcast()->api()->broadcast_children( 123, [ 10, 11, 12 ] );
Вышеуказанный код также свяжет записи между собой, поэтому при обновлении записи 123 все дочерние записи также будут обновлены.

Можно ли вместо трансляции опубликованной записи отправить черновик для публикации на других сайтах?

Конечно. В таком случае просто транслируйте черновик. Записи не обязательно должны иметь какой-то определенный статус.

Понятно. То есть сайт-получатель получит черновик в том статусе, в котором он находится?
