jQuery’;s.load()函数和WordPress

jQuery’;s.load()函数和WordPress,wordpress,wordpress-theming,Wordpress,Wordpress Theming,我目前正在将我的HTML网站迁移到WordPress主题中 我当前的HTML网站充分利用了jQuery的.load()函数,通过该函数,我可以根据用户选择的侧菜单选项使用.load()更改页面内容(通过一个DIV) 例如: HTML代码: <div id="sidebar"> <ul id="themenu" class="sf-menu sf-vertical"> <li><a href="index.html"

我目前正在将我的HTML网站迁移到WordPress主题中

我当前的HTML网站充分利用了jQuery的.load()函数,通过该函数,我可以根据用户选择的侧菜单选项使用.load()更改页面内容(通过一个DIV)

例如:

HTML代码:

<div id="sidebar">
        <ul id="themenu" class="sf-menu sf-vertical">
            <li><a href="index.html" class="topm currentMenu nosub">Home</a></li>
            <li><a href="about-us.html" class="topm nosub">About Us</a></li>
       </ul>
</div>
因此,将此作为HTML情况,用户单击“About Us”菜单选项,这基本上会根据About Us的href标记加载“About Us.HTML”文件

现在在WordPress世界中,我为About Us创建了一个名为“About Us.php”的自定义页面模板,该模板链接到一个名为“aboutus”(permalink)的WP管理仪表板页面,因此我的a href值为“url/aboutus/”

基于此,如何在WordPress中实现相同的结果,以使用jQuery.load模拟我的HTML编码

请注意,我已经在header.php、index.php和sidebar.php文件中添加了所有必要的信息

我只是不确定如何引用a href文件,因此我的about-us.php文件是使用jQuery的
.load()
加载的


我不太确定如何从WordPress的角度来处理这个问题。

首先,我要让网站在不加载javascript的情况下完全发挥功能。这将使你的导航和网站布局在你开始想象之前变得合适,同时也将为爬虫和你的JS崩溃提供一个后备方案

接下来,创建模板子集或修改现有模板,以对URL中的GET var作出反应,排除除模板主内容区域以外的所有内容。对于Ajax负载,您不需要像标题、脚和边栏这样的东西

然后,我将使用jQuery获取导航链接单击事件,修改请求URI以放入GET变量,然后使用.load()发出请求

这样做的一个附带好处是,当您打开缓存时(是的,您希望使用缓存、wordpress和“轻”来运行站点),您的Ajax请求页面也将被缓存,以缩短加载时间和减少资源使用


我想,既然您以前做过,您就知道如何处理jQuery操作绑定、请求和响应解析。

嗨,Gipetto,非常感谢您在这方面的帮助,我已经设法让我的jQuery.load()为我的html方面工作,但很抱歉,关于URL中的GET变量,以及如何处理jQuery操作绑定、请求和响应解析,我不完全理解您来自何方。这是我以前没有做过的。如果可能的话,请你提供一个例子来解释你的建议,我将非常感激。谢谢。对不起,我花了一段时间才回来。基本上,需要做的是ajax加载需要拉一个有限的模板,而不是完整的模板。通过向链接url添加查询变量,您可以在模板中使用该变量从加载中排除页眉、侧边栏和页脚,并仅返回正文内容(这是您所谈论的加载类型所需的全部内容)。当您将单击处理程序附加到nav链接时,添加一个?ajax=true或类似的值,以便在加载模板时,您可以查看该变量,查看是否需要加载完整模板。
$("#themenu li a, #subcat li a").click(function(){
        var toLoadCF = $(this).attr("href")+" #contentfooter";

        $('#contentfooter').fadeIn("slow",loadContent); 

        function loadContent() {
            $("#contentfooter").load(toLoadCF);
        }
        return false;
    });