要获得有效的导航菜单,需要完成WordPress的设置。我的建议是使用add_feed()
. 忽略名称,您可以text/html
作为输出。
让我们从代码开始
<?php # -*- coding: utf-8 -*-
/*
Plugin Name: T5 Iframe Nav Menu
Description: Display a nav menu in an iframe.
Version: 2012.05.18
Refresh the permalinks after activation!
*/
add_action( \'init\', \'wpse_52623_register_nav_menu_iframe\' );
function wpse_52623_register_nav_menu_iframe()
{
add_feed( \'navmenuiframe\', \'wpse_52623_callback\' );
}
function wpse_52623_callback()
{
// if you don\'t use a separate stylesheet change this.
$stylesheet = get_stylesheet_directory_uri() . \'/menu.css\';
?>
<!doctype html>
<base target=\'_top\'>
<title>menu</title>
<link rel=\'stylesheet\' href=\'<?php echo $stylesheet; ?>\'>
<?php
wp_nav_menu(
array ( // Adjust the location value
\'theme_location\' => \'top-menu\',
)
);
}
打开
\'init\'
注册伪提要。第一个参数是URI,第二个参数是打印输出的回调函数插件激活后(或在您将功能添加到主题后
functions.php
) 访问永久链接设置页面,让WordPress刷新重写规则。菜单现在有一个真正的URL;参观
/navmenuiframe/
来看看吧现在您可以将iframe用于
/navmenuiframe/
作为
src
属性确保
\'theme_location\'
样式表URI是正确的对页脚重复此过程其他注意事项请注意,您的页面现在加载速度会变慢。缓存可能会有所帮助,但如果谷歌将性能考虑在内,请不要感到惊讶。即使iframe带来了真正的积极影响(我对此深表怀疑),它们也可能看不到由于WordPress不知道嵌入特殊菜单页的页面,当前页面现在将不会获得特殊类。可以将GET参数传递给
iframe
URL并在回调函数中相应地过滤导航菜单输出,以修复此问题如果访问者禁用了iframes(我有时会这样做),她将无法导航