我想使用WordPress菜单管理,然后用html在WordPress外部安装php文件上显示它,但我遇到了这个错误
PHP Fatal error: Call to a member function get_queried_object() on a non-object in .../blog/wp-includes/nav-menu-template.php on line 395
下面是我如何使用test在php文件中实现它的。php
<?php
$documentroot = $_SERVER[\'DOCUMENT_ROOT\'];
include_once($documentroot.\'/blog/wp-load.php\');
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<div id="header">
<div id="main-nav">
<?php if ( has_nav_menu( \'landingpage-menu\' ) ) { /* if menu location \'secondary-menu\' exists then use custom menu */ ?>
<?php wp_nav_menu( array( \'theme_location\' => \'landingpage-menu\', \'container\' => \'\', \'depth\' => 1 ) ); ?>
<?php } ?>
</div>
</div>
</body>
</html>
我如何实现它有错吗?或者我错过了什么?
SO网友:Will
这应该行得通。可能的问题是顶部的路径【1】不正确或没有命名的菜单landingpage-menu
[2] 。
[1] 对于路径,请在文件顶部尝试此操作,看看它是否达到了预期效果。
<?php
$documentroot = $_SERVER[\'DOCUMENT_ROOT\'];
echo "documentroot is: " . $documentroot . "<br><br>";
$filecontents = file_get_contents($documentroot.\'/blog/wp-load.php\');
echo $filecontents;
?>
[2]对于菜单,请尝试以下操作:
<h2>Menu Locations</h2>
<pre>
<?php print_r($menuLocations); ?>
</pre>
<h2>Menus</h2>
<pre>
<?php print_r($menus); ?>
</pre>
它应该列出所有菜单和菜单位置。