Carregando wordpress no site laravel

Não tenho certeza por que não consegui carregar o site wordpress no site laravel. O seguinte código, eu testei em php sem qualquer estrutura – funciona! mas se eu chamar do arquivo dentro do framework laravel – falhou !!

 'primary', 'container' => false, 'menu_class' => 'menu', 'menu_id' => '', 'fallback_cb' => false )); 

Eu não tenho certeza qual é o problema e o seguinte é o rastreamento do erro:

array_key_exists () espera que o parâmetro 2 seja array, nulo dado

 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]; 

Solutions Collecting From Web of "Carregando wordpress no site laravel"

Você está tentando fazer isso apenas para produzir um menu WP em um site da Lavarel?

Neste caso, você está carregando todo o ambiente WordPress (temas, plugins, opções …) apenas para um menu. Isso não me parece uma ótima coisa.

Provavelmente, a abordagem mais elegante para isso, deve estar em Laravel criar os modelos eloquentes para as tabelas WP envolvidas, um Controller a View para exibir o menu. Todos usando o código Laravel, desta forma você não precisa carregar WP … Claro que você pode copiar o código do WP core e traduzir em Laravel …

Laravel é ótimo para semificar a coisa, no entanto, eu entendo que isso pode parecer muito trabalho em comparação com apenas um …

Por esse motivo, e para não escrever uma resposta fora do tópico, sugiro uma outra abordagem .

Na pasta raiz do WordPress, crie uma subpasta chamada, por exemplo, 'tmp' .

Esta pasta é uma espécie de pasta de intercâmbio de WP para Lavarel. Certifique-se de que o WordPress pode escrever arquivos nesta pasta.

Depois disso, nas functions.php do tema ativo no WordPress, coloque algo como:

 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 ); } 

Este código, quando você visita a página do menu de navegação, crie um arquivo na pasta tmp , chamado primary-menu.inc que contém seu menu. Quando você atualiza o menu, esse arquivo é atualizado.

Depois disso, em Laravel você pode recuperar o conteúdo desse arquivo, assim:

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

E então, passe o $menu_content para as vistas de Lavarel para exibi-lo … O desempenho do seu site Lavarel vai melhorar muito sem carregar o WordPress! (e se você usar um modelo de lâmina, o conteúdo do seu menu também será auto-armazenado em cache …)