Intereting Posts

Multisite, совместное использование контента по URL-адресу

У меня есть сеть из двух сайтов: A.example.com и B.example.com . Мне бы хотелось, чтобы, если я создаю страницу на A с постоянной ссылкой /Widgets я могу получить к ней доступ на B используя ту же относительную постоянную ссылку, но без фактического создания контента на B (На одном сайте есть профили пользователей, которые мы хотели бы продолжать управлять на одном сайте, но выставлять и на другом сайте.) Сайт B все равно будет «смотреть» как B но контент будет поступать от A

Я думал подключиться к init но не знал, что делать, и документация не очень помогает. Или было бы pre_get_posts подключиться к pre_get_posts и просто изменить префикс таблицы, который я запрашиваю?

(Я знаю, что MS не предназначена для этой модели и что мне придется обрабатывать последствия, такие как ссылки в контенте, но это не очень важно.)

благодаря

[РЕДАКТИРОВАТЬ]

К сожалению, /Widget вероятно, плохое имя, это не WordPress Widgets, а просто обычные сообщения.

Надеюсь, я правильно вас понимаю. Не уверен, что ваш контент / виджеты будет фактическим виджетами или просто сообщениями / страницами, но я использовал этот плагин для дублирования контента между сайтами в многопользовательской сети: http://wordpress.org/extend/plugins/diamond- многоузловые-виджеты /

Используйте функцию «Трансляция по сети». Вы можете выбрать, на каких сайтах вы хотите дублировать контент. 2 оговорки:

  1. Если вы создадите сообщение на сайте A, передайте его, затем переработайте его с включенной функцией «широковещательная передача», она создаст второй пост на сайте B. Другими словами, вы не можете передавать обновления . После того, как сообщение будет скопировано, оно полностью отделено от оригинала.
  2. Ваш транслируемый / скопированный пост будет автоматически добавлен в «Без рубрики». Затем вы переходите на второй сайт и назначаете соответствующие должности.

Я закончил с pre_get_posts .

 add_action('pre_get_posts', 'custom__pre_get_posts'); function custom__pre_get_posts($query){ //Get access to global variables global $blog_id; global $wp_query; //Make sure we're not in admin, only run on the main query and don't run on our primary site if($query->is_admin || !$query->is_main_query() || $blog_id===1){ return; } //Try running the query $test_obj = $query->get_queried_object(); //If we didn't get a result then the page wasn't found if(!$test_obj){ //Switch to the main site switch_to_blog(1); //Reset the query using the same args as the original (the previous reset changes $wpdb) $wp_query = new WP_Query($query->query_vars); //Re-query the object again. We might need to perform more sanity checks here $test_obj = $query->get_queried_object(); //Switch back to our current site restore_current_blog(); // }else{ //This is a normal query for a page that exists, we don't need to do anything } }