2013-09-22 2 views
0

следующее приложение index.blade.php приложения laravel.Render wordpress on Laravel

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html lang="en-GB" xmlns="http://www.w3.org/1999/xhtml"> 
    <?php 
     global $wp_rewrite; 
     define('WP_USE_THEMES', true); 
     // require_once (app_path().'/libraries/wp-config.php'); 
     // require (app_path().'/libraries/wp-load.php'); 
     require (app_path().'/libraries/wp-blog-header.php'); 
     // require ('../app/libraries/wp-blog-header.php'); 
    ?> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1"> 
     <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" /> 
     <title> @yield('title') </title> 
    </head> 
    <body @yield('bodyclass')> 
     <div id="container"> 
      <div id="primary-menu" class="dropdown-menu-wrap"> 

      <?php wp_nav_menu(array('theme_location' => 'primary', 
       'container' => false, 
       'menu_class' => 'menu', 
       'menu_id' => '', 
       'fallback_cb' => false 
      )); ?> 

      </div> 

пытается вызвать меню существующего приложения Wordpress. в то время как config.php непосредственно загружается из существующего wordpress, wp_include - это новая загрузка из новых файлов Wordpress. то же самое с wp-blog-header, wp-load и wp-настройкой.

Я не уверен, почему вы должны вытащить ошибку вызова функции-члена main() на не-объект. Протестировано все доступное решение, но не удалось.

function wp($query_vars = '') { 
global $wp, $wp_query, $wp_the_query; 
$wp->main($query_vars); 

if (!isset($wp_the_query)) 
+0

'вызов функции члена основного() на не-object.' обычно означает, что переменная используется не является объектом, в данном случае '$ wp', похоже, не является объектом wordpress, является ли среда wordpress в этом скрипте –

+0

@Patrick Evans, есть ли возможность использовать эту функцию? Я имею в виду wp_nav_menu с внешнего сайта Wordpress. Thx – 1myb

+0

Как вы смешиваете Blade и Wordpress? – fideloper

ответ

2

Я пытаюсь сделать это так же хорошо, и я думаю, что это может быть ответом: https://github.com/swt83/laravel-wordpress/blob/master/readme.md

С наилучшими пожеланиями ;-)

+0

Обратите внимание, что [ссылки только ответы обескуражены] (http://meta.stackoverflow.com/tags/link-only-answers/info), SO ответы должны быть конечной точкой искать решение (по сравнению с другой остановкой ссылок, которые со временем устаревают). Пожалуйста, подумайте о добавлении отдельного резюме здесь, сохранив ссылку в качестве ссылки. – kleopatra

0

Вместо того, чтобы использовать функции WordPress в «лезвие», вы можете передать его переменной и можете вызвать это в лезвие.

<?php 
//In controller 
$args = array(
      array('theme_location' => 'primary', 
       'container' => false, 
       'menu_class' => 'menu', 
       'menu_id' => '', 
       'fallback_cb' => false, 
      'echo' => false 
     )); 
     $data['menu'] = wp_nav_menu($args); 
?> 

//In blade 
{{$menu}} 

Для получения более подробной, Вы можете пройти: Wordpress+Laravel