WP_NAV_MENU();在WordPress安装之外

时间:2014-01-15 作者:Gerald

我想使用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>
我如何实现它有错吗?或者我错过了什么?

2 个回复
SO网友:neil

您可以使用此代码,它将真正帮助您很多

<?php
require( \'../wp-load.php\' );
get_header(newtheme);

echo \'new content outside WordPress\';

get_footer();
?>

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>
它应该列出所有菜单和菜单位置。

结束

相关推荐

How to find installed plugins

我一直在寻找WordPress网站上安装的插件列表。虽然我找到了一种方法,“http wp plugins.nse”暴力脚本,但我不知道如何使用这个脚本。如果有人知道任何方法,请分享。