Первая часть задачи состоит в том, чтобы вывести только меню с минимально возможным количеством окружающего HTML (или вообще без него), поэтому вам потребуется как можно меньше работы для анализа HTML.
Вторая часть заключается в том, чтобы взять этот вывод из Drupal и фактически отобразить его на вашем сайте WordPress.
Вы можете добавить базу данных Drupal в качестве вторичной базы данных в WordPress, используя новый экземпляр $ wpdb объекта , написать запрос для получения нужного содержимого из таблиц и отформатировать результаты. Это может сработать, но может быть излишним.
Альтернативным работающим вариантом может быть использование JSON для форматирования вывода первичных ссылок с использованием функции drupal_json в Drupal, а затем использование JSON-ленты в Wordpress.
Я предполагаю:
- у вас есть доступ администратора для входа на сайт Drupal, который вам понадобится для создания узлов, и очистки кеша темы
- вы хотите вывести меню «Основные ссылки», которое используют более 90% сайтов Drupal. Вероятно, это правда, но возможно, ваш сайт использует пользовательские меню. Если это так, это все еще возможно, вы просто напишите немного другой код на шаге 3.
Шаги будут:
- Создать узел Drupal (вы можете называть его как угодно, это просто заполнитель)
- Получите идентификатор узла вашей фиктивной страницы (т. Е. Node / 234). Из идентификатора узла создайте одноразовый шаблон страницы в папке тем вашего сайта Drupal. Он должен называться
page-node-xxxx.tpl.php
, где xxxx - идентификатор вашего узла
Добавьте этот код к page-node-xxxx.tpl.php
:
<?php
drupal_json(menu_navigation_links(variable_get('menu_primary_links_source', 'primary-links')));
?>
Это создаст JSON-ленту для ваших пунктов меню.
Очистите кэш тем вашего сайта на Drupal, посетив http://yoursite.com/admin/build/themes и посетите http://yoursite.com/node/xxxx, чтобы увидеть необработанный канал JSON.
Теперь вы должны иметь возможность использовать метод jQuery, например $. GetJSON или $. Ajax , в вашей теме Wordpress для использования и отображения фида JSON или, возможно, используйте json_decode и curl для вывода массива в виде HTML.
Хорошая особенность функции drupal_json
в Drupal состоит в том, что она уже отправляет правильные заголовки JSON, поэтому теперь все, что вам нужно сделать, это написать jQuery или PHP, который делает то, что вам нужно.
Я предполагаю, что вы в большей степени специалист по Wordpress и имеете практические знания о Drupal, но, возможно, не очень хорошо знакомы с его внутренней работой. Так что извините, если это показалось слишком простым (или недостаточно простым :).