Intereting Posts
Отправка нескольких вложений с помощью функции JQuery и wp_mail () Сохранение данных пользовательского типа в пользовательской таблице Как удалить все неактивные виджеты? Как предотвратить автоматическое преобразование тире в & ndash; Вставка строк в пользовательскую таблицу, когда активирован плагин Проблема с разбиением на страницы на статической странице Как использовать функцию плагина как крючок? Создайте кликабельное имя в WP_List_Table для Plugin Admin Отображение ссылки на PHP только в том случае, если администратор зарегистрирован Такая же дата в одной коробке Как сохранить несколько метаболитов? Обслуживание файлов cookie из другого домена или поддомена Личный кабинет Датчика Смерти? Как я могу заставить WordPress CPT-архивы и шаблоны страниц работать с заданными настройками постоянной ссылки? Как добавить несколько настраиваемых переменных URL?

Загрузка материала WordPress на сайт laravel

Я не уверен, почему я не смог загрузить сайт wordpress на сайте laravel. следующий код, я тестировал на простой php без каких-либо фреймворков – он работает! но если я позвоню из файла в рамках laravel – это не удалось !!

<?php define('WP_USE_THEMES', false); require('./wordpress/wp-blog-header.php'); wp_nav_menu(array('theme_location' => 'primary', 'container' => false, 'menu_class' => 'menu', 'menu_id' => '', 'fallback_cb' => false )); 

я не уверен, в чем проблема, и следующее: отслеживание следа от ошибки:

array_key_exists () ожидает, что параметр 2 будет массивом, null

 function mo_get_theme_option($option_id, $default = null, $single = true) { global $mo_theme; global $options_cache; if (array_key_exists($option_id, $options_cache)) return $options_cache[$option_id]; 

Вы пытаетесь сделать это только для вывода меню WP на сайте Lavarel?

В этом случае вы загружаете всю среду WordPress (темы, плагины, параметры …) только для меню. Мне это не кажется замечательным.

Вероятно, самый изящный подход для этого, должен быть в Laravel, создать красноречивые модели для задействованных таблиц WP, контроллер для представления в меню. Все, используя код Laravel, таким образом вам не нужно загружать WP .. Конечно, вы можете скопировать код из ядра WP и перевести в Laravel …

Laravel отлично подходит для semplificate, но я понимаю, что это может показаться большой работой по сравнению с просто включением …

По этой причине, а не для написания ответа вне темы, я предлагаю вам другой подход .

В корневой папке WordPress создайте подпапку с именем, например 'tmp' .

Эта папка является своего рода папкой обмена от WP до Lavarel. Убедитесь, что WordPress может записывать файлы в этой папке.

После этого в functions.php Php активной темы в WordPress ставится что-то вроде:

 add_action('load-nav-menus.php', 'go_cache_menu'); function go_cache_menu() { add_action('shutdown', 'cache_menu'); } function cache_menu() { $filename = trailingslashit(ABSPATH) . '/tmp/primary-menu.inc'; $content = wp_nav_menu( array( 'theme_location' => 'primary', 'container' => false, 'menu_class' => 'menu', 'menu_id' => '', 'fallback_cb' => false, 'echo' => false )); file_put_contents ( $filename , $content ); } 

Этот код, когда вы посещаете страницу навигационного меню, создайте файл в папке tmp именем primary-menu.inc который содержит ваше меню. Когда вы обновляете меню, этот файл обновляется.

После этого в Laravel вы можете получить содержимое этого файла, например:

 $path = './wordpress/tmp/primary-menu.inc'; $menu_content = @file_get_contents($path) ? : ''; 

А затем передайте $menu_content menu_content в представления Lavarel, чтобы отобразить его … Производительность вашего сайта Lavarel значительно улучшится без загрузки WordPress! (и если вы используете шаблон Blade, содержимое вашего меню будет также автоматически кэшироваться …)