【发布时间】:2013-08-26 22:58:26
【问题描述】:
不是代码问题,我只是不明白在这种特定情况下是如何工作的。
我正在开发一个 Wordpress 主题,它应该通过 javascript 动态加载部分 php 代码。 它实际上与 UA 嗅探结合使用,因为如果设备是移动设备,则无论如何都应该使用移动模板,但这不是重点。
- 如果 screen.width
- 否则,如果 screen.width 较大,则应加载桌面菜单版本
- 仅基于 CSS 媒体查询的解决方案是不可接受的,因为桌面版本太重了。
所以我决定通过enquire.js有条件地动态加载内容 我的 WP-homepage-template.php 的第一部分是:
enquire.register("screen and (max-width:1080px)", {
<script type="text/javascript">
match : function() {
$("body").load(
"/path/headernav-phone.php"
);
unmatch : function() {
$("body").load(
"/path/headernav-desktop.php"
);
}
}
所以,当屏幕大小达到 1080px 时,Wordpress 应该加载 headernav-phone.php 其中仅包含一个 wp_nav_menu(MOBILE) 调用。 如果屏幕尺寸较大,Wordpress 会加载 headernav-desktop.php,其中包含 wp_nav_menu(DESKTOP)。
这不起作用:
致命错误:在第 14 行调用 /XX/YYY/ZZZ/webseiten/XXX.YY/wp-content/themes/MyTheme/templates/headernav-phone.php 中未定义的函数 wp_nav_menu()
看起来我的代码是在 CMS 之前运行的,它破坏了自己的功能。
【问题讨论】:
-
您是否将 enquire.js 加入到页脚中?还是在 标签之前加载?
-
atm通过wp_enqueue_script放到head部分
-
哪个 WP 版本?您是否尝试过一一禁用插件检查错误?
-
是的,一切都被禁用了
标签: php javascript wordpress enquire.js