1

OpenCart ヘッダーに Wordpress メニューを表示したいと思います。test.php ページに次のコードを追加しました。

<?php
require($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-load.php');  
wp_nav_menu( array( 'menu' => 'Test' ) ); ?>

それはうまく機能しますが、それを OpenCart の header.tpl テンプレートに追加すると、エラーが発生します。

Fatal error: Call to a member function get_queried_object() on a non-object in /....../wordpress/wp-includes/nav-menu-template.php on line 256

お手伝いできますか?以前にこれを行ったことがありますか?OpenCart が問題を引き起こしているようですか?

以下の進捗状況に関する追加の更新

さて、OC と WP のデフォルトのインストールを実行しました。

Wordpress はルートにあります - www.test.local Opencart は root/store ディレクトリにあります - www.test.local/store/

Opencart Default Tenplate ヘッダーには、次のコードがあります。

<?php $path = $_SERVER['DOCUMENT_ROOT'].'/wp-load.php';
      echo $path;
      require_once($path);  
      wp_nav_menu( array( 'menu' => 'Test' ) ); ?>

次のエラーが生成されます。

test.local/Sites/test.local/htdocs/wp-load.phpNotice: Constant DB_PASSWORD already defined in test.local/Sites/test.local/htdocs/wp-config.php on line 25Unknown: Redefining already defined constructor for class WP_Widget in test.local/Sites/test.local/htdocs/wp-includes/widgets.php on line 93Warning: strpos() expects parameter 1 to be string, array given in test.local/Sites/test.local/htdocs/wp-includes/functions.php on line 3048
Fatal error: Call to a member function get_queried_object() on a non-object in test.local/Sites/test.local/htdocs/wp-includes/nav-menu-template.php on line 256

興味深いことに、Wordpress から「テスト」メニューを削除すると、メニューが Opencart に表示されますが、それでも次のエラーが表示されます。

/Sites/test.local/htdocs/wp-load.phpNotice: Constant DB_PASSWORD already defined in /Sites/test.local/htdocs/wp-config.php on line 25Unknown: Redefining already defined constructor for class WP_Widget in /Sites/test.local/htdocs/wp-includes/widgets.php on line 93Warning: strpos() expects parameter 1 to be string, array given in /Sites/test.local/htdocs/wp-includes/functions.php on line 3048Notice: Trying to get property of non-object in /Sites/test.local/htdocs/wp-includes/post-template.php on line 845

手掛かり?誰でもアイデアはありますか?

4

2 に答える 2

0

WP と OC がデータベース パスワードに同じ定義変数を使用するため、「Constant DB_PASSWORD already defined」がスローされます。OC DB_PASSWORD 変数名を DB_PASSWORD_OC に変更し、index.php で次のように変更する必要があります。

// データベース

$db = 新しい DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); ...

新しい変数名に準拠するには:

// データベース

$db = 新しい DB(DB_DRIVER、DB_HOSTNAME、DB_USERNAME、DB_PASSWORD_OC、DB_DATABASE);

于 2015-01-13T11:45:56.573 に答える