Как опубликовать одну запись на нескольких сайтах WordPress?

13 июл. 2016 г., 21:35:02
Просмотры: 17.5K
Голосов: 2

Мы разрабатываем несколько сайтов на WordPress. Нам нужно публиковать некоторые записи более чем на одном сайте. Требуется сохранять запись сразу на нескольких сайтах одним кликом.

Я искал в Google, но не смог найти подходящего руководства по этому вопросу.

3
Комментарии

Немного не по теме, но разве это не будет считаться дублированным контентом и плохо для SEO?

Sledge Hammer Sledge Hammer
13 июл. 2016 г. 21:40:08

@SledgeHammer Нет, это синдицированный контент, и он не обязательно плох для SEO

cjbj cjbj
13 июл. 2016 г. 21:49:42

"Несколько сайтов" не означает мультисайтовую сеть, верно? Для тех, кто все еще ищет подобное решение, рекомендую посмотреть этот плагин https://rudrastyh.com/plugins/simple-wordpress-crossposting

Misha Rudrastyh Misha Rudrastyh
1 июн. 2024 г. 14:07:58
Все ответы на вопрос 2
0

Вы можете использовать функцию 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 предлагает решение этой проблемы.

13 июл. 2016 г. 21:59:23
4

Автор плагина Broadcast приветствует вас.

Учитывая мой значительный опыт в области мультипостинга и всех связанных с этим проблем, я рекомендую доверить публикацию записей проверенному плагину.

Используя API, вы можете транслировать запись на любое количество сайтов в сети. Плагин автоматически позаботится о копировании вложений (да, вложения имеют разные URL и ID на каждом сайте).

Вот как транслировать запись 123 на несколько сайтов:

ThreeWP_Broadcast()->api()->broadcast_children( 123, [ 10, 11, 12 ] );

Вышеуказанный код также свяжет записи между собой, поэтому при обновлении записи 123 все дочерние записи также будут обновлены.

3 авг. 2016 г. 17:02:40
Комментарии

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

Hugo Hugo
12 апр. 2020 г. 18:53:37

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

WhiteWindows WhiteWindows
13 апр. 2020 г. 19:03:41

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

Hugo Hugo
20 апр. 2020 г. 22:46:19

Целевой сайт получит пост в том статусе, в котором он был отправлен.

WhiteWindows WhiteWindows
21 апр. 2020 г. 23:04:19